home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / cmds / g++1.mips / cplus-tab.c < prev    next >
C/C++ Source or Header  |  1990-04-12  |  218KB  |  5,686 lines

  1.  
  2. /*  A Bison parser, made from cplus-parse.y  */
  3.  
  4. #define    IDENTIFIER    258
  5. #define    TYPENAME    259
  6. #define    SCSPEC    260
  7. #define    TYPESPEC    261
  8. #define    TYPE_QUAL    262
  9. #define    CONSTANT    263
  10. #define    STRING    264
  11. #define    ELLIPSIS    265
  12. #define    SIZEOF    266
  13. #define    ENUM    267
  14. #define    IF    268
  15. #define    ELSE    269
  16. #define    WHILE    270
  17. #define    DO    271
  18. #define    FOR    272
  19. #define    SWITCH    273
  20. #define    CASE    274
  21. #define    DEFAULT    275
  22. #define    BREAK    276
  23. #define    CONTINUE    277
  24. #define    RETURN    278
  25. #define    GOTO    279
  26. #define    ASM    280
  27. #define    TYPEOF    281
  28. #define    ALIGNOF    282
  29. #define    ATTRIBUTE    283
  30. #define    AGGR    284
  31. #define    DELETE    285
  32. #define    NEW    286
  33. #define    OVERLOAD    287
  34. #define    PRIVATE    288
  35. #define    PUBLIC    289
  36. #define    PROTECTED    290
  37. #define    THIS    291
  38. #define    OPERATOR    292
  39. #define    DYNAMIC    293
  40. #define    POINTSAT_LEFT_RIGHT    294
  41. #define    LEFT_RIGHT    295
  42. #define    SCOPE    296
  43. #define    EMPTY    297
  44. #define    TYPENAME_COLON    298
  45. #define    ASSIGN    299
  46. #define    RANGE    300
  47. #define    OROR    301
  48. #define    ANDAND    302
  49. #define    MIN_MAX    303
  50. #define    EQCOMPARE    304
  51. #define    ARITHCOMPARE    305
  52. #define    LSHIFT    306
  53. #define    RSHIFT    307
  54. #define    UNARY    308
  55. #define    PLUSPLUS    309
  56. #define    MINUSMINUS    310
  57. #define    HYPERUNARY    311
  58. #define    PAREN_STAR_PAREN    312
  59. #define    PAREN_X_SCOPE_STAR_PAREN    313
  60. #define    PAREN_X_SCOPE_REF_PAREN    314
  61. #define    POINTSAT    315
  62. #define    RAISE    316
  63. #define    RAISES    317
  64. #define    RERAISE    318
  65. #define    TRY    319
  66. #define    EXCEPT    320
  67. #define    CATCH    321
  68. #define    TYPENAME_SCOPE    322
  69. #define    TYPENAME_ELLIPSIS    323
  70. #define    PRE_PARSED_FUNCTION_DECL    324
  71. #define    EXTERN_LANG_STRING    325
  72. #define    ALL    326
  73.  
  74. #line 30 "cplus-parse.y"
  75.  
  76. #include "config.h"
  77. #include "tree.h"
  78. #include "input.h"
  79. #include "cplus-parse.h"
  80. #include "cplus-tree.h"
  81. #include "assert.h"
  82.  
  83. /* C++ extensions */
  84. extern tree ridpointers[];    /* need this up here */
  85. extern tree void_list_node;
  86.  
  87. #include <stdio.h>
  88. #include <errno.h>
  89.  
  90. #ifndef errno
  91. extern int errno;
  92. #endif
  93.  
  94. extern int end_of_file;
  95.  
  96. void yyerror ();
  97.  
  98. /* Contains error message to give if user tries to declare
  99.    a variable where one does not belong.  */
  100. static char *stmt_decl_msg = 0;
  101.  
  102. #ifndef YYDEBUG
  103. /* Cause the `yydebug' variable to be defined.  */
  104. int yydebug;
  105. #endif
  106.  
  107. /* Cons up an empty parameter list.  */
  108. #ifdef __GNU__
  109. __inline
  110. #endif
  111. static tree
  112. empty_parms ()
  113. {
  114.   tree parms;
  115.  
  116.   if (strict_prototype)
  117.     parms = void_list_node;
  118.   else
  119.     parms = NULL_TREE;
  120.   return parms;
  121. }
  122.  
  123. void yyhook ();
  124.  
  125. #line 83 "cplus-parse.y"
  126. typedef union {long itype; tree ttype; enum tree_code code; } YYSTYPE;
  127. #line 199 "cplus-parse.y"
  128.  
  129. /* the declaration found for the last IDENTIFIER token read in.
  130.    yylex must look this up to detect typedefs, which get token type TYPENAME,
  131.    so it is left around in case the identifier is not a typedef but is
  132.    used in a context which makes it a reference to a variable.  */
  133. tree lastiddecl;
  134.  
  135. tree make_pointer_declarator (), make_reference_declarator ();
  136.  
  137. tree combine_strings ();
  138. void reinit_parse_for_function ();
  139. void reinit_parse_for_method ();
  140.  
  141. /* List of types and structure classes of the current declaration.  */
  142. tree current_declspecs;
  143.  
  144. int undeclared_variable_notice;    /* 1 if we explained undeclared var errors.  */
  145.  
  146. int yylex ();
  147. extern FILE *finput;
  148.  
  149. #ifndef YYLTYPE
  150. typedef
  151.   struct yyltype
  152.     {
  153.       int timestamp;
  154.       int first_line;
  155.       int first_column;
  156.       int last_line;
  157.       int last_column;
  158.       char *text;
  159.    }
  160.   yyltype;
  161.  
  162. #define YYLTYPE yyltype
  163. #endif
  164.  
  165. #define    YYACCEPT    return(0)
  166. #define    YYABORT    return(1)
  167. #define    YYERROR    goto yyerrlab
  168. #include <stdio.h>
  169.  
  170. #ifndef __STDC__
  171. #define const
  172. #endif
  173.  
  174.  
  175.  
  176. #define    YYFINAL        1041
  177. #define    YYFLAG        -32768
  178. #define    YYNTBASE    94
  179.  
  180. #define YYTRANSLATE(x) ((unsigned)(x) <= 326 ? yytranslate[x] : 237)
  181.  
  182. static const char yytranslate[] = {     0,
  183.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  184.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  185.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  186.      2,     2,    92,     2,     2,     2,    65,    55,     2,    75,
  187.     88,    63,    61,    45,    62,    74,    64,     2,     2,     2,
  188.      2,     2,     2,     2,     2,     2,     2,    49,    89,     2,
  189.     47,     2,    48,     2,     2,     2,     2,     2,     2,     2,
  190.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  191.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  192.     76,     2,    93,    54,     2,     2,     2,     2,     2,     2,
  193.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  194.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  195.      2,     2,    44,    53,    90,    91,     2,     2,     2,     2,
  196.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  197.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  198.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  199.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  200.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  201.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  202.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  203.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  204.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  205.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  206.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  207.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  208.      2,     2,     2,     2,     2,     1,     2,     3,     4,     5,
  209.      6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
  210.     16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
  211.     26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
  212.     36,    37,    38,    39,    40,    41,    42,    43,    46,    50,
  213.     51,    52,    56,    57,    58,    59,    60,    66,    67,    68,
  214.     69,    70,    71,    72,    73,    77,    78,    79,    80,    81,
  215.     82,    83,    84,    85,    86,    87
  216. };
  217.  
  218. static const short yyrline[] = {     0,
  219.    222,   223,   231,   233,   233,   234,   236,   239,   241,   242,
  220.    247,   249,   251,   254,   259,   264,   267,   269,   273,   277,
  221.    283,   286,   291,   297,   304,   306,   311,   312,   313,   316,
  222.    329,   341,   343,   345,   347,   349,   351,   355,   360,   364,
  223.    368,   372,   376,   382,   392,   401,   408,   417,   426,   433,
  224.    442,   450,   463,   476,   491,   498,   527,   530,   532,   533,
  225.    538,   545,   552,   556,   558,   583,   609,   611,   614,   616,
  226.    617,   619,   623,   625,   627,   629,   631,   635,   637,   639,
  227.    643,   645,   647,   649,   651,   655,   658,   666,   669,   672,
  228.    675,   677,   681,   689,   691,   693,   695,   700,   713,   715,
  229.    748,   751,   753,   755,   757,   759,   762,   766,   791,   805,
  230.    807,   810,   827,   829,   831,   833,   835,   837,   839,   841,
  231.    843,   845,   847,   849,   851,   853,   855,   857,   859,   861,
  232.    863,   871,   873,   875,   877,   880,   884,   968,   978,   979,
  233.    981,   983,   985,   993,  1005,  1007,  1009,  1042,  1044,  1060,
  234.   1062,  1066,  1089,  1127,  1129,  1131,  1162,  1170,  1172,  1174,
  235.   1177,  1180,  1183,  1185,  1189,  1192,  1194,  1201,  1205,  1207,
  236.   1209,  1211,  1213,  1215,  1217,  1225,  1227,  1229,  1231,  1233,
  237.   1243,  1245,  1253,  1255,  1259,  1268,  1287,  1293,  1300,  1308,
  238.   1311,  1318,  1323,  1330,  1332,  1339,  1342,  1344,  1346,  1350,
  239.   1354,  1356,  1358,  1366,  1369,  1371,  1373,  1384,  1387,  1389,
  240.   1391,  1395,  1398,  1406,  1407,  1408,  1409,  1413,  1421,  1422,
  241.   1423,  1426,  1429,  1431,  1433,  1437,  1443,  1445,  1448,  1450,
  242.   1453,  1456,  1464,  1471,  1473,  1481,  1486,  1487,  1492,  1499,
  243.   1501,  1511,  1514,  1519,  1520,  1524,  1528,  1536,  1542,  1545,
  244.   1549,  1551,  1556,  1559,  1562,  1568,  1571,  1575,  1579,  1583,
  245.   1586,  1590,  1594,  1609,  1622,  1626,  1628,  1631,  1633,  1637,
  246.   1639,  1641,  1643,  1646,  1649,  1652,  1656,  1659,  1661,  1663,
  247.   1666,  1670,  1675,  1679,  1683,  1689,  1692,  1694,  1698,  1703,
  248.   1708,  1717,  1730,  1733,  1735,  1737,  1739,  1741,  1742,  1743,
  249.   1746,  1749,  1752,  1757,  1802,  1804,  1808,  1810,  1814,  1817,
  250.   1819,  1823,  1825,  1829,  1831,  1835,  1837,  1841,  1846,  1848,
  251.   1850,  1852,  1858,  1861,  1862,  1873,  1877,  1880,  1883,  1887,
  252.   1890,  1892,  1894,  1902,  1904,  1908,  1911,  1915,  1918,  1922,
  253.   1925,  1928,  1931,  1935,  1938,  1946,  1948,  1952,  1955,  1957,
  254.   1959,  1961,  1963,  1965,  1967,  1969,  1972,  1975,  1978,  1980,
  255.   1982,  1984,  1987,  1990,  1992,  1994,  1996,  1998,  2000,  2002,
  256.   2005,  2008,  2011,  2013,  2020,  2023,  2025,  2027,  2029,  2031,
  257.   2033,  2035,  2037,  2039,  2043,  2046,  2049,  2052,  2057,  2063,
  258.   2066,  2069,  2071,  2074,  2077,  2080,  2082,  2086,  2088,  2089,
  259.   2093,  2098,  2100,  2102,  2105,  2108,  2111,  2113,  2115,  2117,
  260.   2119,  2121,  2123,  2125,  2127,  2129,  2131,  2133,  2135,  2137,
  261.   2145,  2147,  2148,  2151,  2158,  2170,  2173,  2176,  2178,  2186,
  262.   2193,  2199,  2202,  2205,  2210,  2221,  2225,  2228,  2232,  2236,
  263.   2240,  2244,  2249,  2252,  2258,  2263,  2266,  2272,  2279,  2283,
  264.   2286,  2293,  2309,  2317,  2321,  2365,  2365,  2441,  2441,  2452,
  265.   2452,  2456,  2460,  2463,  2468,  2475,  2484,  2493,  2502,  2508,
  266.   2514,  2515,  2520,  2521,  2525,  2528,  2531,  2544,  2559,  2591,
  267.   2603,  2605,  2610,  2617,  2619,  2619,  2622,  2641,  2644,  2663,
  268.   2674,  2677,  2679,  2683,  2686,  2688,  2690,  2696,  2701,  2707,
  269.   2710,  2711,  2717,  2719,  2722,  2724,  2728,  2733,  2736,  2745,
  270.   2752,  2757,  2763,  2768,  2772,  2777,  2782,  2796,  2799,  2801,
  271.   2807,  2811,  2814,  2817,  2822,  2826,  2830,  2836,  2844,  2847,
  272.   2851,  2854,  2858,  2861,  2863,  2865,  2867,  2869,  2871,  2874,
  273.   2876,  2883,  2886,  2888,  2890,  2892,  2894,  2896,  2898,  2900,
  274.   2902,  2904,  2906,  2908,  2917,  2919,  2921,  2923,  2925,  2927,
  275.   2929,  2931,  2933,  2935,  2937,  2957,  2969,  2981,  2994,  3010,
  276.   3014
  277. };
  278.  
  279. static const char * const yytname[] = {     0,
  280. "error","$illegal.","IDENTIFIER","TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING","ELLIPSIS",
  281. "SIZEOF","ENUM","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT",
  282. "BREAK","CONTINUE","RETURN","GOTO","ASM","TYPEOF","ALIGNOF","ATTRIBUTE","AGGR","DELETE",
  283. "NEW","OVERLOAD","PRIVATE","PUBLIC","PROTECTED","THIS","OPERATOR","DYNAMIC","POINTSAT_LEFT_RIGHT","LEFT_RIGHT",
  284. "SCOPE","EMPTY","TYPENAME_COLON","'{'","','","ASSIGN","'='","'?'","':'","RANGE",
  285. "OROR","ANDAND","'|'","'^'","'&'","MIN_MAX","EQCOMPARE","ARITHCOMPARE","LSHIFT","RSHIFT",
  286. "'+'","'-'","'*'","'/'","'%'","UNARY","PLUSPLUS","MINUSMINUS","HYPERUNARY","PAREN_STAR_PAREN",
  287. "PAREN_X_SCOPE_STAR_PAREN","PAREN_X_SCOPE_REF_PAREN","POINTSAT","'.'","'('","'['","RAISE","RAISES","RERAISE","TRY",
  288. "EXCEPT","CATCH","TYPENAME_SCOPE","TYPENAME_ELLIPSIS","PRE_PARSED_FUNCTION_DECL","EXTERN_LANG_STRING","ALL","')'","';'","'}'",
  289. "'~'","'!'","']'","program"
  290. };
  291.  
  292. static const short yyr1[] = {     0,
  293.     94,    94,    96,    95,    97,    95,    98,    98,    98,    98,
  294.     98,    98,    98,    98,    99,   100,   101,   101,   102,   103,
  295.    103,   103,   103,   103,   103,   103,   103,   103,   103,   104,
  296.    104,   104,   104,   104,   104,   104,   104,   105,   105,   105,
  297.    105,   105,   105,   106,   106,   106,   106,   106,   106,   106,
  298.    107,   108,   108,   108,   109,   110,   111,   111,   111,   111,
  299.    112,   112,   112,   112,   112,   112,   113,   113,   114,   114,
  300.    114,   114,   114,   114,   114,   114,   114,   115,   115,   115,
  301.    116,   116,   116,   116,   116,   117,   117,   118,   118,   119,
  302.    119,   119,   120,   120,   120,   120,   120,   120,   120,   120,
  303.    120,   120,   120,   120,   120,   120,   120,   120,   120,   121,
  304.    121,   121,   122,   122,   122,   122,   122,   122,   122,   122,
  305.    122,   122,   122,   122,   122,   122,   122,   122,   122,   122,
  306.    122,   122,   122,   122,   122,   122,   123,   123,   123,   123,
  307.    123,   123,   124,   123,   123,   123,   123,   123,   123,   123,
  308.    123,   123,   123,   123,   123,   123,   123,   123,   123,   123,
  309.    123,   123,   123,   123,   125,   125,   126,   125,   125,   125,
  310.    125,   125,   125,   125,   125,   127,   127,   127,   127,   127,
  311.    128,   128,   129,   129,   130,   131,   131,   132,   132,   132,
  312.    132,   132,   132,   133,   133,   134,   134,   134,   134,   135,
  313.    135,   135,   135,   136,   136,   136,   136,   137,   137,   137,
  314.    137,   138,   138,   139,   139,   139,   139,   139,   140,   140,
  315.    140,   141,   141,   141,   141,   141,   142,   142,   143,   143,
  316.    144,   144,   146,   145,   145,   148,   147,   147,   150,   149,
  317.    149,   151,   151,   152,   152,   153,   153,   153,   154,   154,
  318.    155,   155,   155,   155,   155,   156,   156,   158,   157,   159,
  319.    157,   157,   157,   157,   157,   160,   160,   161,   161,   162,
  320.    162,   162,   162,   162,   162,   162,   163,   163,   163,   163,
  321.    163,   164,   164,   164,   164,   165,   165,   165,   165,   165,
  322.    165,   166,   167,   167,   167,   167,   167,   167,   167,   167,
  323.    168,   168,   168,   169,   169,   169,   169,   169,   169,   169,
  324.    169,   169,   169,   169,   169,   169,   169,   169,   169,   169,
  325.    169,   169,   170,   170,   170,   171,   171,   171,   171,   172,
  326.    172,   172,   172,   173,   173,   174,   174,   175,   175,   176,
  327.    176,   177,   177,   178,   178,   180,   179,   181,   181,   181,
  328.    181,   181,   181,   181,   181,   181,   181,   181,   181,   181,
  329.    181,   181,   182,   182,   182,   182,   182,   182,   182,   182,
  330.    182,   182,   182,   182,   183,   183,   183,   183,   183,   183,
  331.    183,   183,   183,   183,   183,   183,   183,   183,   183,   183,
  332.    183,   183,   183,   183,   183,   183,   183,   184,   184,   184,
  333.    185,   185,   185,   185,   185,   185,   185,   185,   185,   185,
  334.    185,   185,   185,   185,   185,   185,   185,   185,   185,   185,
  335.    186,   186,   186,   187,   188,   189,   189,   190,   190,   190,
  336.    192,   191,   193,   193,   193,   194,   193,   193,   195,   196,
  337.    193,   197,   198,   193,   199,   200,   201,   193,   202,   203,
  338.    204,   193,   205,   193,   206,   193,   207,   193,   208,   193,
  339.    193,   193,   193,   193,   193,   193,   193,   193,   193,   209,
  340.    193,   210,   193,   193,   193,   193,   211,   193,   193,   193,
  341.    212,   212,   212,   214,   213,   215,   216,   215,   217,   215,
  342.    218,   218,   218,   219,   219,   219,   219,   220,   220,   221,
  343.    221,   221,   222,   222,   223,   223,   224,   225,   225,   226,
  344.    226,   226,   226,   226,   226,   226,   226,   227,   227,   227,
  345.    228,   228,   228,   228,   229,   230,   231,   231,   232,   232,
  346.    233,   233,   234,   234,   234,   234,   234,   234,   234,   235,
  347.    235,   236,   236,   236,   236,   236,   236,   236,   236,   236,
  348.    236,   236,   236,   236,   236,   236,   236,   236,   236,   236,
  349.    236,   236,   236,   236,   236,   236,   236,   236,   236,   236,
  350.    236
  351. };
  352.  
  353. static const short yyr2[] = {     0,
  354.      0,     1,     0,     2,     0,     3,     1,     1,     1,     5,
  355.      4,     3,     2,     2,     1,     3,     1,     3,     0,     3,
  356.      3,     3,     3,     3,     2,     2,     2,     2,     1,     3,
  357.      4,     3,     5,     4,     3,     3,     3,     3,     3,     3,
  358.      7,     5,     1,     6,     4,     3,     6,     4,     3,     3,
  359.      2,     2,     4,     2,     3,     0,     0,     1,     3,     2,
  360.      3,     1,     4,     2,     5,     3,     1,     1,     1,     1,
  361.      2,     1,     2,     2,     2,     3,     3,     1,     2,     2,
  362.      1,     1,     1,     1,     1,     1,     1,     0,     1,     1,
  363.      3,     3,     1,     2,     2,     2,     2,     2,     4,     2,
  364.      4,     2,     5,     3,     4,     4,     2,     2,     5,     1,
  365.      4,     7,     1,     3,     3,     3,     3,     3,     3,     3,
  366.      3,     3,     3,     3,     3,     3,     3,     3,     5,     3,
  367.      3,     3,     3,     3,     5,     2,     1,     1,     1,     1,
  368.      3,     3,     0,     4,     4,     2,     4,     2,     3,     2,
  369.      2,     1,     5,     4,     2,     2,     2,     2,     5,     3,
  370.      5,     3,     6,     4,     3,     3,     0,     4,     4,     2,
  371.      4,     2,     2,     2,     2,     1,     4,     2,     5,     2,
  372.      1,     2,     1,     2,     0,     2,     2,     3,     3,     3,
  373.      3,     2,     2,     1,     1,     1,     2,     2,     3,     1,
  374.      1,     2,     2,     2,     2,     2,     2,     1,     2,     2,
  375.      3,     1,     2,     1,     1,     1,     4,     4,     1,     1,
  376.      1,     2,     2,     2,     5,     5,     1,     3,     1,     3,
  377.      0,     4,     0,     7,     4,     0,     7,     4,     0,     7,
  378.      4,     0,     6,     1,     3,     1,     4,     4,     1,     3,
  379.      1,     2,     3,     4,     1,     1,     3,     0,     7,     0,
  380.      6,     2,     4,     5,     1,     0,     1,     0,     1,     1,
  381.      2,     5,     2,     2,     2,     2,     1,     2,     4,     2,
  382.      3,     1,     2,     3,     4,     1,     1,     1,     2,     2,
  383.      2,     1,     0,     1,     4,     4,     4,     3,     3,     3,
  384.      1,     2,     2,     3,     5,     5,     3,     3,     3,     3,
  385.      3,     5,     5,     3,     3,     3,     3,     1,     2,     2,
  386.      4,     4,     0,     1,     3,     4,     3,     2,     2,     4,
  387.      3,     2,     2,     1,     3,     1,     3,     2,     2,     0,
  388.      1,     2,     2,     0,     2,     0,     2,     5,     5,     3,
  389.      5,     4,     3,     4,     5,     1,     1,     1,     5,     3,
  390.      3,     1,     5,     5,     3,     5,     4,     3,     4,     1,
  391.      1,     1,     3,     3,     5,     5,     3,     5,     3,     3,
  392.      3,     4,     3,     1,     1,     2,     2,     2,     3,     3,
  393.      3,     2,     7,     7,     5,     7,     3,     1,     2,     2,
  394.      3,     3,     2,     1,     1,     1,     3,     2,     5,     3,
  395.      4,     3,     4,     2,     3,     2,     3,     4,     2,     3,
  396.      1,     2,     2,     2,     0,     1,     2,     2,     4,     4,
  397.      0,     6,     1,     1,     2,     0,     4,     1,     0,     0,
  398.      7,     0,     0,     9,     0,     0,     0,     9,     0,     0,
  399.      0,     9,     0,     6,     0,     5,     0,     7,     0,     4,
  400.      2,     2,     2,     3,     6,     8,    10,    12,     3,     0,
  401.      4,     0,     3,     1,     6,     4,     0,     7,     3,     1,
  402.      3,     3,     3,     0,     4,     0,     0,     4,     0,     4,
  403.      3,     4,     4,     3,     4,     6,     6,     0,     1,     0,
  404.      1,     1,     0,     1,     1,     3,     4,     1,     3,     0,
  405.      1,     3,     2,     1,     1,     2,     2,     2,     4,     4,
  406.      3,     3,     3,     3,     1,     0,     2,     2,     0,     2,
  407.      0,     2,     1,     1,     1,     2,     2,     2,     2,     1,
  408.      3,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  409.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  410.      2,     3,     2,     2,     3,     2,     3,     2,     2,     3,
  411.      2
  412. };
  413.  
  414. static const short yydefact[] = {     3,
  415.      5,     0,     0,     0,     0,     0,    43,    15,    29,     4,
  416.      0,     9,     0,     8,     7,   185,     0,     0,   196,     6,
  417.     27,    28,     0,    17,     0,     3,    14,    13,   384,   224,
  418.    205,   222,   204,     0,     0,   270,     0,     0,     0,   344,
  419.    344,   344,     0,   344,     0,     0,   229,   223,   277,   265,
  420.      0,   385,     0,    56,   529,   185,     0,     0,   362,   344,
  421.    344,   356,   357,   358,    19,    26,     0,     0,   227,   194,
  422.    195,   216,   207,   214,   206,     0,    25,     0,   197,     0,
  423.    215,     0,   201,   219,   220,   198,   200,   221,   183,     0,
  424.      0,    16,    12,     5,   344,    19,    67,    68,   260,   262,
  425.     19,   571,   569,   568,   344,   566,   553,   554,     0,   560,
  426.    559,   548,   549,   547,   563,   552,   551,   555,   556,   545,
  427.    546,   542,   543,   544,   557,   558,   564,     0,   550,   561,
  428.      0,   340,   208,     0,   271,     0,     0,   388,   525,     0,
  429.      0,     0,     0,   392,   525,     0,   387,   386,     0,     0,
  430.     20,    67,   273,   274,   275,   276,   280,   278,   292,     0,
  431.     37,   344,     0,   346,     0,    40,    51,    57,    54,     0,
  432.     19,    52,   185,     0,     0,     0,   425,    30,   426,    32,
  433.      0,     0,   344,   344,     0,    35,    24,    38,     0,    23,
  434.    344,     0,   346,    19,    22,   199,    21,    36,    39,   203,
  435.    202,   184,     0,    18,    11,   531,   514,   515,     0,   526,
  436.    526,     0,   511,   529,     0,   258,   137,   139,    19,    19,
  437.    181,   176,   152,     0,    19,    82,    81,    19,    83,    84,
  438.      0,   398,    19,    85,     0,    19,     0,    86,   110,   113,
  439.     87,    93,    19,    19,   140,     0,   340,   208,     0,   340,
  440.      0,   138,   565,   562,   567,   224,   342,     0,   344,   344,
  441.    344,   404,   405,   406,    19,   346,   344,   570,   341,   210,
  442.    212,   216,   343,   209,     0,   389,   345,   397,   381,   380,
  443.    379,   391,     0,   390,   531,   230,     0,   288,   287,   286,
  444.    282,   281,     0,   318,    19,     0,     0,   323,   323,     0,
  445.      0,   301,   377,     0,     0,     0,    90,   196,     0,   383,
  446.      0,    19,   534,   535,     0,   533,     0,   540,   532,     0,
  447.    242,    67,    62,    19,     0,    58,     0,     0,   255,     0,
  448.      0,   251,     0,   530,     0,    89,     0,    31,    34,   427,
  449.    428,     0,   361,   360,     0,     0,   344,   344,   370,   371,
  450.    372,    19,     0,   242,   228,   350,     0,     0,     0,   353,
  451.      0,     0,     0,    10,    42,   340,   340,   344,   513,    19,
  452.    517,   516,   518,   336,   268,   334,     0,   399,     0,    98,
  453.      0,     0,   100,   178,    19,   156,     0,   180,   182,   157,
  454.     95,    94,     0,     0,     0,     0,    96,   342,    97,   225,
  455.      0,    19,    19,     0,    19,    19,    19,    19,    19,    19,
  456.     19,    19,    19,    19,    19,    19,    19,    19,    19,   146,
  457.    150,   151,   187,   186,    19,    19,   107,    19,   208,   102,
  458.     19,   108,    69,    70,    78,     0,    19,    19,     0,     0,
  459.    148,     0,    19,   136,     0,    72,   338,   155,    19,   226,
  460.    339,    69,   400,   158,   344,   414,   408,   403,     0,     0,
  461.    416,     0,   419,   344,    19,   346,   213,   211,     0,   344,
  462.      0,   231,   279,     0,   291,   290,   289,   283,     0,   531,
  463.    320,   319,   384,   344,    19,    19,    19,   531,     0,   324,
  464.    344,    19,   531,     0,     0,     0,     0,   263,   303,   302,
  465.    344,   204,   344,   344,   382,   347,   536,   537,   538,   539,
  466.      0,     0,     0,   241,     0,    60,     0,    64,    19,     0,
  467.    252,   256,     0,     0,    53,    33,     0,   137,     0,   439,
  468.    442,     0,     0,    19,     0,     0,     0,    19,     0,   498,
  469.    472,     0,     0,   474,     0,   434,     0,     0,     0,   433,
  470.    438,   421,   480,     0,   445,   449,     0,     0,     0,     0,
  471.      0,   344,     0,   346,   354,   235,   344,   344,   344,   352,
  472.    217,   218,   384,   344,   344,   344,    19,   344,   522,   521,
  473.    524,   523,   531,   512,   340,   529,   529,    19,   269,     0,
  474.    268,     0,     0,     0,     0,   142,   141,     0,    19,    19,
  475.     92,    91,   131,   130,   502,   501,     0,   128,   127,   125,
  476.    126,   124,   123,   122,   121,   119,   120,   114,   115,   116,
  477.    117,   118,     0,     0,     0,   104,    19,     0,     0,    80,
  478.    174,   175,   133,   132,     0,     0,     0,     0,    79,    71,
  479.    162,    19,    73,    74,     0,    75,   134,   170,   172,   173,
  480.     19,    19,   149,     0,   160,    19,   420,   407,   402,   401,
  481.    344,   415,   417,   410,     0,   412,     0,   272,   395,     0,
  482.      0,     0,   242,   284,     0,   316,   317,    50,    19,   307,
  483.    308,   531,   328,   329,     0,     0,   231,     0,   304,   314,
  484.    315,   531,     0,   310,   231,   309,   311,     0,     0,     0,
  485.    264,   378,   375,   376,   541,     0,     0,   239,    61,    59,
  486.      0,    66,    19,     0,   253,   430,   470,    19,     0,    19,
  487.      0,    19,     0,   459,   461,   462,   463,     0,     0,   499,
  488.      0,    19,     0,   484,   435,   192,   531,     0,   193,     0,
  489.      0,   531,     0,   429,   423,   422,   436,     0,     0,     0,
  490.      0,     0,     0,   359,   355,   344,   344,    19,   374,   373,
  491.      0,   365,     0,     0,     0,   368,     0,   233,   351,   348,
  492.    349,   408,   403,   419,    41,   528,   527,   519,   520,   337,
  493.    335,   261,     0,    99,   101,     0,   177,   144,     0,   111,
  494.      0,    19,   145,   147,   106,     0,   105,    19,   166,   165,
  495.      0,    19,     0,    76,    77,     0,     0,   164,    19,   154,
  496.      0,   418,   413,   344,   411,   344,   344,   344,   238,   285,
  497.    321,   322,   327,    45,   344,   529,   384,    19,    19,   531,
  498.    325,    48,   344,     0,     0,     0,   232,     0,     0,    63,
  499.      0,   254,   257,    19,     0,    19,     0,     0,   425,   491,
  500.      0,   494,     0,   455,    19,    19,   464,   469,     0,   473,
  501.      0,    19,   481,   425,   189,   231,   188,   191,   190,   231,
  502.    424,    19,   479,     0,   483,   482,     0,     0,     0,     0,
  503.    344,   344,   369,   344,   344,   344,   367,     0,   259,   179,
  504.    266,   153,   129,   103,   109,   168,   135,   161,   169,   171,
  505.      0,   159,   409,   396,   393,   394,   236,   305,   306,   531,
  506.    326,    19,   332,   333,   231,   312,   313,   531,   246,     0,
  507.    244,   240,    65,   471,   431,     0,   443,   495,   493,     0,
  508.    492,   453,    19,     0,   460,     0,   476,     0,   485,   437,
  509.    477,   446,   450,     0,     0,   366,   363,   364,   234,     0,
  510.      0,   163,     0,    44,   331,   529,    47,     0,     0,     0,
  511.     19,   440,     0,     0,     0,    19,   456,   457,   503,     0,
  512.      0,   486,     0,     0,   112,   237,   330,   249,     0,     0,
  513.    245,   243,   432,    19,    19,   497,   496,   454,    19,     0,
  514.      0,   504,   505,   465,   475,     0,     0,     0,   247,     0,
  515.    248,   441,     0,   458,    19,   503,     0,     0,   489,   478,
  516.    487,   447,   451,   250,     0,     0,     0,   466,   506,     0,
  517.      0,    19,    19,   444,   507,     0,     0,   490,   488,   448,
  518.    452,   508,     0,   467,     0,     0,   509,   468,     0,     0,
  519.      0
  520. };
  521.  
  522. static const short yydefgoto[] = {  1039,
  523.      1,     2,     3,    10,    11,    12,    25,   331,    14,    15,
  524.     16,   297,    55,    56,    57,   168,   325,   326,   138,   441,
  525.    442,   236,   545,   335,   238,   239,   240,   241,   242,   395,
  526.    444,   637,   243,   244,   245,    58,   246,   546,   285,   547,
  527.     86,   548,   247,   270,    79,   271,   333,    68,    46,   321,
  528.     69,   888,   286,   953,    47,   839,   514,   920,   921,   980,
  529.    522,   523,    88,   377,   215,   951,   590,    49,    50,   292,
  530.    293,   160,   300,   301,   302,   489,   490,   831,   375,   376,
  531.    249,   268,   250,   456,   311,   312,    70,   353,    71,   251,
  532.    269,   549,   745,   342,   178,   550,   551,   961,   552,   872,
  533.    719,   984,   720,   963,   752,   973,  1022,   753,   974,  1023,
  534.    966,   933,   989,   856,   844,   732,   972,   553,   554,   864,
  535.    996,  1021,  1020,   555,   556,   731,   607,   991,   992,   993,
  536.   1033,   460,   213,   214,   146,   366,   587,   172,   166,   318,
  537.    319,   252
  538. };
  539.  
  540. static const short yypact[] = {    67,
  541.     76,  3328,  3328,   405,   -11,    85,-32768,-32768,-32768,-32768,
  542.   3585,-32768,  4132,-32768,-32768,   209,  4326,  4031,  1047,-32768,
  543. -32768,-32768,   135,-32768,   121,    87,-32768,-32768,-32768,   119,
  544. -32768,-32768,-32768,   175,   111,-32768,  2189,    48,   252,-32768,
  545. -32768,-32768,   559,   223,   348,   208,-32768,-32768,   573,   290,
  546.     64,-32768,   262,-32768,   356,   136,   192,   192,-32768,-32768,
  547. -32768,-32768,-32768,-32768,   915,-32768,   186,   225,-32768,   333,
  548.    430,   907,-32768,-32768,-32768,   363,-32768,   205,  1047,   247,
  549. -32768,  4393,-32768,-32768,-32768,  1124,-32768,-32768,-32768,    46,
  550.    420,-32768,-32768,   366,-32768,    81,-32768,-32768,-32768,   427,
  551.   3905,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   400,-32768,
  552. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  553. -32768,-32768,-32768,-32768,-32768,-32768,-32768,   371,-32768,-32768,
  554.    649,   939,   591,   709,-32768,   135,   622,-32768,   467,   559,
  555.    834,   834,   303,-32768,   834,   477,-32768,-32768,   622,  4420,
  556. -32768,   439,-32768,-32768,-32768,-32768,   763,-32768,-32768,  3389,
  557. -32768,-32768,  1231,   404,    65,   234,-32768,    79,-32768,  2657,
  558.   3727,-32768,-32768,   192,   192,   460,   421,-32768,-32768,-32768,
  559.    629,   629,-32768,-32768,   890,-32768,-32768,   234,  4420,-32768,
  560. -32768,  1422,   444,  3905,-32768,  1124,-32768,-32768,   234,-32768,
  561. -32768,-32768,   459,-32768,-32768,    55,-32768,-32768,  1031,-32768,
  562.   1189,   476,   153,   523,   622,-32768,   540,-32768,  3948,  3991,
  563. -32768,   103,-32768,   509,  3905,-32768,-32768,  3905,-32768,-32768,
  564.   2727,-32768,  3905,-32768,  1495,  3905,   499,   539,-32768,-32768,
  565.   4559,   737,   279,  3770,   584,  1297,   939,   642,   516,  4481,
  566.     92,-32768,   467,-32768,-32768,-32768,-32768,   568,-32768,-32768,
  567. -32768,-32768,-32768,-32768,  1322,   537,-32768,-32768,   496,   591,
  568. -32768,-32768,-32768,   591,    61,-32768,-32768,-32768,   430,   430,
  569. -32768,-32768,   221,-32768,   534,-32768,   763,-32768,-32768,-32768,
  570. -32768,   590,   873,-32768,  3905,  4179,    30,  4242,  1142,    38,
  571.   3121,-32768,   467,   553,  1409,   227,  4583,   639,   555,-32768,
  572.    554,  3905,   540,-32768,   634,-32768,   113,-32768,   607,   582,
  573.    632,   540,-32768,  3727,   233,-32768,   281,   123,-32768,  1555,
  574.   1542,  4583,   342,-32768,   574,   539,   192,-32768,-32768,-32768,
  575. -32768,  1933,   333,   333,   629,   629,-32768,-32768,-32768,-32768,
  576. -32768,-32768,   319,   632,-32768,   467,   579,   272,   586,-32768,
  577.    593,   595,   603,-32768,-32768,  4426,  4426,-32768,-32768,   685,
  578. -32768,-32768,-32768,   659,   678,-32768,   622,-32768,  2727,-32768,
  579.     98,  2727,-32768,   650,  3905,-32768,   448,-32768,-32768,-32768,
  580. -32768,-32768,   648,   651,   460,   658,-32768,   673,-32768,-32768,
  581.   3077,  3905,  3905,  2797,  3905,  3905,  3905,  3905,  3905,  3905,
  582.   3905,  3905,  3905,  3905,  3905,  3905,  3905,  3905,  3905,-32768,
  583. -32768,-32768,-32768,-32768,  3727,  3905,-32768,-32768,   752,   710,
  584.   3905,-32768,   540,-32768,   725,   463,  3905,  3905,  2867,   401,
  585.    432,    77,  3905,   456,    92,-32768,-32768,-32768,  3727,-32768,
  586. -32768,-32768,-32768,   452,-32768,   467,   700,   700,   336,   686,
  587. -32768,   691,   700,-32768,    81,   692,-32768,   591,   749,-32768,
  588.   2263,   754,   590,   763,-32768,-32768,-32768,-32768,  4538,   408,
  589. -32768,-32768,   733,   212,  3905,  3905,  3168,   534,   253,-32768,
  590.    219,  3168,   246,    41,   738,   739,   742,   704,-32768,-32768,
  591. -32768,   673,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  592.     65,   135,   719,   756,   713,-32768,    79,-32768,  3727,   470,
  593. -32768,-32768,   154,   673,-32768,-32768,   718,    17,   740,-32768,
  594. -32768,   743,   744,  3905,   771,   734,   736,  3813,   622,   823,
  595. -32768,    65,   787,-32768,   746,-32768,  4373,  4058,  1649,-32768,
  596.    822,-32768,   166,  2025,-32768,-32768,   359,   370,   458,   458,
  597.    890,-32768,  2355,   747,-32768,   797,-32768,-32768,-32768,-32768,
  598. -32768,-32768,   568,   252,-32768,-32768,  4189,   223,-32768,   430,
  599. -32768,   430,    55,-32768,  4105,   523,   523,  3905,   622,   758,
  600.    678,   765,   768,   135,   176,-32768,-32768,   773,  3856,  3727,
  601. -32768,  4583,  4583,  4583,-32768,-32768,   802,  4615,  2252,  2314,
  602.   2342,  1638,  1411,  1003,  1219,   851,   851,   454,   454,-32768,
  603. -32768,-32768,   777,   775,   778,-32768,  3727,  2657,   776,-32768,
  604. -32768,-32768,-32768,-32768,   784,   785,   460,   794,-32768,-32768,
  605. -32768,  3727,   540,-32768,    53,-32768,-32768,-32768,-32768,-32768,
  606.   3727,  3905,   519,   796,-32768,  3727,   700,   496,   496,-32768,
  607. -32768,-32768,   496,   467,   798,-32768,   792,-32768,   467,   800,
  608.    274,   807,   632,-32768,   873,-32768,-32768,   575,  3905,-32768,
  609. -32768,    55,  4583,  4583,  4508,   808,   500,  4252,-32768,-32768,
  610. -32768,    55,   811,-32768,   564,-32768,-32768,  3436,  3483,  3530,
  611. -32768,   467,   467,   467,-32768,    88,   827,-32768,-32768,-32768,
  612.    816,-32768,  3727,  2517,-32768,-32768,-32768,  3905,   830,  3664,
  613.   2447,  3905,   640,-32768,-32768,-32768,-32768,   819,   831,-32768,
  614.    846,  3664,   542,   833,-32768,-32768,   266,   258,-32768,   835,
  615.    268,   250,   837,-32768,-32768,-32768,-32768,    65,   622,   839,
  616.   1749,  2937,  2937,-32768,-32768,-32768,-32768,   109,   333,   333,
  617.    385,   467,   842,   282,   845,-32768,   841,-32768,   467,   467,
  618.    467,  3575,  3575,  4299,-32768,-32768,   430,-32768,-32768,  4583,
  619. -32768,-32768,   850,-32768,-32768,    96,-32768,-32768,  2657,-32768,
  620.    855,  3905,-32768,-32768,-32768,   858,-32768,  3905,-32768,-32768,
  621.    860,  3905,   861,-32768,-32768,   862,   864,-32768,  3727,-32768,
  622.    880,   496,   467,-32768,-32768,-32768,-32768,-32768,   922,-32768,
  623. -32768,-32768,  4583,-32768,   644,   523,   924,  3905,  3905,   534,
  624. -32768,-32768,   655,  3187,  3234,  3281,-32768,   968,  2657,-32768,
  625.    886,-32768,-32768,  3664,   887,  3905,   965,   892,   899,-32768,
  626.    902,-32768,   908,-32768,  3905,  3664,-32768,-32768,   135,-32768,
  627.    912,  3727,-32768,-32768,-32768,   754,-32768,-32768,-32768,   754,
  628. -32768,  3664,   607,   959,-32768,-32768,   918,   919,   458,   458,
  629. -32768,-32768,-32768,-32768,-32768,-32768,-32768,  2657,-32768,-32768,
  630.    967,-32768,  4601,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  631.    916,-32768,   467,   467,   467,   467,-32768,-32768,-32768,    55,
  632. -32768,  3905,  4583,  4583,   754,-32768,-32768,    55,   941,   286,
  633. -32768,-32768,-32768,-32768,-32768,   929,-32768,-32768,-32768,  2117,
  634. -32768,-32768,  3664,   974,-32768,    94,-32768,   936,-32768,-32768,
  635. -32768,-32768,-32768,   458,   458,   467,   467,   467,-32768,  2587,
  636.    935,-32768,  2657,-32768,  4583,   523,-32768,   598,   968,   938,
  637.   3664,-32768,   953,   940,  1841,  3664,-32768,-32768,  1020,   950,
  638.    952,-32768,  3007,  3007,-32768,-32768,-32768,-32768,   954,   304,
  639. -32768,-32768,-32768,  3664,  3905,-32768,-32768,-32768,  3664,   969,
  640.    124,  1004,-32768,-32768,-32768,   197,   960,   970,-32768,  1053,
  641. -32768,-32768,   982,-32768,  3905,  1020,   986,  1020,-32768,-32768,
  642. -32768,-32768,-32768,-32768,   989,   991,   194,-32768,-32768,   460,
  643.    460,  3664,  3664,-32768,-32768,  1071,   995,-32768,-32768,-32768,
  644. -32768,-32768,   318,-32768,  1077,   998,-32768,-32768,  1093,  1109,
  645. -32768
  646. };
  647.  
  648. static const short yypgoto[] = {-32768,
  649.   1084,-32768,-32768,  1108,-32768,-32768,-32768,    -2,  1102,  1110,
  650. -32768,-32768,-32768,-32768,  1063,-32768,-32768,   605,   790,  -241,
  651. -32768,   877,   -94,  -199,   727,   531,  -208,   689,-32768,-32768,
  652. -32768,-32768,  -190,  -174,   -21,   -27,  -187,   403,     6,    28,
  653.   1049,   237,  1096,   863,   -80,    -1,    11,   587,   -13,  -161,
  654. -32768,-32768,   946,-32768,-32768,-32768,  -312,-32768,   181,-32768,
  655.   -151,   355,   137,-32768,-32768,-32768,   560,-32768,-32768,   868,
  656.    687,-32768,-32768,  -143,  -293,   866,-32768,-32768,   782,   577,
  657.   -133,  -210,  1126,   325,  -148,-32768,  -138,   608,   273,  -153,
  658.   -206,  -528,-32768,  -789,    -7,   -54,-32768,-32768,    66,-32768,
  659. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  660. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  661. -32768,-32768,-32768,-32768,-32768,-32768,  -700,   164,-32768,   165,
  662. -32768,   -12,-32768,   814,  1132,   966,-32768,  -203,   -61,  -495,
  663.    433,   975
  664. };
  665.  
  666.  
  667. #define    YYLAST        4680
  668.  
  669.  
  670. static const short yytable[] = {    13,
  671.     13,    90,   179,   179,    80,   188,   237,   500,    13,   454,
  672.    373,   317,    19,    19,   328,   705,   391,    87,   334,   392,
  673.    199,    19,    67,    78,   397,   751,   354,   399,   175,    17,
  674.     17,   381,   381,   388,   131,   432,   447,   381,    17,   451,
  675.    381,   566,   343,   344,   361,   381,   733,   133,   381,   389,
  676.    180,   877,   878,   274,   202,   804,   381,   378,   459,   930,
  677.    363,   277,   185,    23,   161,   717,    -1,   313,   314,   202,
  678.    495,   496,   497,   481,   939,    -2,   135,    87,   482,   643,
  679.    644,   322,    98,   212,   201,   688,  -531,    24,  -531,    37,
  680.    207,  -531,   445,   209,   452,   434,   202,   396,   235,   362,
  681.    433,   434,   202,   162,   202,   315,    19,  -531,  -531,   430,
  682.   -531,   248,  -531,    37,   275,   509,   510,   462,   323,   179,
  683.    179,   340,   136,   210,   515,    97,    98,   498,    37,   696,
  684.    697,   435,   165,   203,    37,   453,   394,   435,   163,   164,
  685.    384,   165,   969,    89,   365,   337,   385,   232,   469,    48,
  686.    309,   316,  -531,   324,    81,   579,   581,   296,    95,   232,
  687.    305,   232,   369,   881,   208,    91,   338,   339,  -510,   274,
  688.     19,   882,  1006,   308,   453,   837,    93,    97,    98,   359,
  689.    232,   970,   440,   890,    54,   101,   186,   298,   440,   305,
  690.    210,   235,   176,    96,   201,   453,   388,   370,   714,   313,
  691.    314,   371,   308,   653,   248,   453,   557,   558,  -531,    92,
  692.   -531,  1007,   389,  -531,    97,    98,  1009,   506,    99,   210,
  693.    401,    97,    98,   472,   173,   623,   144,   445,   235,  -531,
  694.   -531,    53,  -531,   516,  -531,   177,   372,   315,    18,    18,
  695.    131,   248,  1026,   715,   748,   592,   749,    18,   593,   654,
  696.    658,   659,   150,   429,    97,    98,   663,    54,   320,   137,
  697.    470,  -231,   209,   165,   167,   787,   137,    48,   467,   189,
  698.     81,   401,   997,   998,   187,    19,   -55,   517,  -231,   232,
  699.   -231,  1027,   179,   316,   394,    51,  1010,   394,   645,   162,
  700.     82,   150,   210,   195,   625,   471,   151,   688,   296,   137,
  701.    680,   681,   189,   488,   493,   638,    87,   690,   691,   606,
  702.    673,    19,   150,   190,   503,   143,   401,   667,   401,   711,
  703.    518,   427,  -231,   165,   163,   164,   401,   165,   298,   526,
  704.    959,   624,   211,   159,   694,   197,   629,   143,  -195,   305,
  705.    598,   689,   162,   165,   636,    48,   867,    81,  1000,   561,
  706.    147,   148,   308,   428,   865,   519,   869,   317,   562,   568,
  707.    819,   817,  1035,   328,   139,   141,   142,   585,   145,   885,
  708.    459,    48,   191,   960,   776,   464,   235,   163,   164,   235,
  709.     19,   448,   778,   779,   181,   182,    81,   149,   317,   248,
  710.    281,  1001,   248,   563,   564,   169,   299,   210,   191,   211,
  711.    791,   965,   170,    97,    98,  1036,   565,   192,   193,   191,
  712.    465,   466,   278,   279,   280,   767,   449,   282,   678,   206,
  713.    759,   760,   204,   660,   562,   131,   687,   796,   211,   253,
  714.    171,   695,    48,   192,   193,    81,   235,   194,   133,   723,
  715.    639,    48,   803,   728,   192,   193,   754,   162,   254,   248,
  716.    812,   806,   665,   279,   280,   205,   811,   755,   672,   563,
  717.    564,    59,   209,   255,   277,   631,   467,    48,   305,   162,
  718.    216,   641,   883,   277,   686,    19,   797,   221,   222,   693,
  719.    283,   308,   163,   164,   685,   165,   303,   287,   387,   685,
  720.    706,   655,   210,    21,    22,   648,   310,    19,   210,    37,
  721.   1011,   211,    19,   177,   163,   164,   642,   345,   346,   712,
  722.    341,   386,   756,   841,   210,   356,   417,   418,   419,   210,
  723.    757,   775,   649,   650,   320,   826,   656,    62,    63,    64,
  724.    651,   652,   758,   826,   741,   464,   360,   299,   221,   222,
  725.    500,   500,   500,   -46,   713,    37,   305,   364,   -46,   387,
  726.    765,   305,   737,   740,   834,   835,   836,   807,   808,   308,
  727.    305,    29,   843,   368,   308,   658,   659,   663,   480,   170,
  728.    465,   466,   786,   308,   209,   152,    98,   153,   154,   155,
  729.    378,   861,   801,   401,   457,   458,   400,    19,   320,   895,
  730.    210,   463,   202,   809,   317,    37,    84,    85,    39,    40,
  731.    978,   156,    34,   450,   210,   979,   211,   -49,   455,   901,
  732.    381,   165,   -49,    41,   746,   157,   862,   279,   280,    36,
  733.    824,    42,   911,   845,    97,    98,   851,   853,    38,   461,
  734.    832,    29,    59,    43,   474,   277,   507,   508,   580,   582,
  735.    501,    44,   504,    83,    84,    85,   505,    84,    85,    45,
  736.     34,   511,   256,    34,    32,   257,   512,   606,   606,   513,
  737.     34,   525,   938,   821,   822,    37,   567,    36,    39,    40,
  738.     36,   559,   560,   569,    35,   866,    38,    36,   448,    38,
  739.    870,   448,   571,    60,    81,   570,    38,   922,   854,   855,
  740.    572,    61,   583,   830,   584,   296,   296,   296,    62,    63,
  741.     64,   211,   258,    65,   354,   588,   277,   211,    19,    19,
  742.     19,    44,   272,   449,    74,   273,   449,   305,   305,    45,
  743.     34,    48,   589,   211,   594,   298,   298,   298,   211,   305,
  744.    308,   308,   908,   909,    76,   596,   949,    36,   597,   259,
  745.    343,   344,   308,   916,   917,   599,    38,   600,   305,   380,
  746.    383,   926,   977,   956,   260,   185,   628,    84,    85,   143,
  747.    934,   308,   261,    34,   143,    97,    98,   288,   915,   262,
  748.    263,   264,   630,   661,   265,   266,   420,   668,   320,   657,
  749.     36,   679,   267,   662,   666,   847,   698,   699,   664,    38,
  750.    700,   626,   701,   707,   669,   289,   290,   860,   843,   211,
  751.    709,   976,   708,   421,   422,   557,   558,   716,   682,   423,
  752.    424,   425,   426,   211,   718,   692,   746,   721,   722,   724,
  753.    742,    48,   725,   100,   726,   702,   627,   703,   704,   730,
  754.    734,   296,   296,   296,   735,   747,    29,   936,   158,   766,
  755.    277,   305,   317,   768,    19,    19,    19,   782,   954,   143,
  756.    792,   307,   784,   305,   308,   785,   957,   777,   332,   307,
  757.    788,   298,   298,   298,   793,   795,   308,   794,   798,   305,
  758.     37,   799,   800,    39,    40,    97,    98,   475,   606,   606,
  759.    307,   802,   308,   810,   815,   814,   762,   816,    41,   306,
  760.   1003,   769,   770,   771,   818,   825,    42,   336,   833,   772,
  761.    773,   838,   774,   840,   846,   476,   477,   857,    43,   924,
  762.   1016,   415,   416,   417,   418,   419,    44,    29,   358,   858,
  763.    859,   935,   863,   868,    45,   871,   276,   305,   875,   884,
  764.    305,  -362,   886,   887,   299,   299,   299,   940,   284,   889,
  765.    308,   258,   892,   308,   347,   894,   291,   896,   898,   899,
  766.   -362,    37,   348,  -362,    39,    40,   900,   327,   305,   349,
  767.    350,   351,   305,   305,   352,  1028,  1029,   902,   907,   183,
  768.    919,   308,   912,   923,   925,   308,   308,   184,   259,   927,
  769.    928,   305,  -362,   479,  -362,   813,   305,    52,   929,    43,
  770.    931,    52,    52,   260,   308,   932,  -362,    44,   967,   308,
  771.    937,   261,   941,   952,   374,    45,   942,   943,   262,   263,
  772.    264,   950,   307,   265,   266,   958,   962,    52,   332,   305,
  773.    305,   267,   968,   971,   975,   982,   983,   985,   990,   986,
  774.    746,   988,   308,   308,   256,    31,    32,    33,   994,    52,
  775.    995,   999,    34,  1005,   279,   280,   282,  1012,  1008,  1002,
  776.    336,    83,    84,    85,  1004,  1014,    35,  1013,    34,    36,
  777.    412,   413,   414,   415,   416,   417,   418,   419,    38,  1015,
  778.    299,   299,   299,   307,  1018,    36,   291,  1024,  1025,  1032,
  779.    879,   880,   478,  1034,    38,  1037,  1038,  1030,  1031,   602,
  780.    603,   604,  1040,   608,   609,   610,   611,   612,   613,   614,
  781.    615,   616,   617,   618,   619,   620,   621,   622,  1041,    94,
  782.     20,   595,    27,   307,    52,    52,    52,   520,   174,    52,
  783.     28,   710,   443,   852,    52,   633,   634,   196,   200,    84,
  784.     85,   647,   132,   738,   355,    34,   468,   307,   903,   981,
  785.    904,   905,   906,   891,   483,    72,    73,    74,    75,   910,
  786.    783,   336,    36,    34,   473,    52,    52,   918,   591,   307,
  787.    675,    38,   134,    52,   494,   781,   374,    76,   761,  1017,
  788.     36,   140,  1019,   683,   684,   336,   367,     0,    37,    38,
  789.    873,   491,    40,   586,   485,     0,     0,     0,     0,     0,
  790.    486,     0,   272,    73,    74,    75,    60,   671,   390,     0,
  791.     34,     0,     0,     0,    61,   944,   945,   307,   946,   947,
  792.    948,    62,    63,    64,    76,     0,   492,    36,     0,     0,
  793.    446,     0,     0,     0,    44,   446,    38,     0,     0,   640,
  794.      0,   304,    45,   217,   -19,   -19,   -19,   -19,   218,    89,
  795.    207,   219,   -19,     0,     0,   336,     0,     0,     0,     0,
  796.      0,   307,     0,     0,     0,     0,   -19,   220,     0,   -19,
  797.    221,   222,     0,   674,     0,     0,   223,    37,   -19,     0,
  798.     52,   224,    52,    52,     0,     0,   780,   413,   414,   415,
  799.    416,   417,   418,   419,     0,   225,     0,   790,   307,   764,
  800.      0,   226,   227,   228,     0,     0,     0,   229,   230,   433,
  801.    434,     0,     0,     0,     0,   231,   327,     0,     0,     0,
  802.      0,     0,     0,   232,   208,   307,   332,     0,  -510,    52,
  803.     52,   233,   234,     0,   258,     0,   336,     0,   729,     0,
  804.    307,   207,     0,    37,     0,     0,   435,   436,     0,   307,
  805.     52,    52,     0,     0,   307,     0,     0,     0,     0,     0,
  806.      0,   437,     0,   336,     0,   446,     0,   226,   227,   438,
  807.      0,   259,     0,   229,   230,     0,     0,   823,   336,     0,
  808.      0,   439,     0,     0,     0,     0,   260,   336,   374,   232,
  809.      0,     0,   336,     0,   261,     0,     0,   440,   234,     0,
  810.      0,   262,   263,   264,     0,     0,   265,   266,     0,     0,
  811.      0,   307,   332,     0,   267,   208,     0,     0,     0,  -510,
  812.    632,     0,   256,    31,    32,   502,   646,     0,     0,   446,
  813.     34,     0,   357,     0,   217,   -19,   -19,   -19,   -19,   218,
  814.     89,   207,   219,   -19,    35,     0,     0,    36,     0,   336,
  815.      0,     0,     0,     0,     0,     0,    38,   -19,   220,     0,
  816.    -19,   221,   222,     0,     0,     0,     0,   223,    37,   -19,
  817.      0,    52,   224,     0,   820,     0,    52,   411,   412,   413,
  818.    414,   415,   416,   417,   418,   419,   225,   332,     0,     0,
  819.    893,     0,   226,   227,   228,     0,     0,     0,   229,   230,
  820.    897,     0,     0,     0,     0,     0,   231,   307,   256,     0,
  821.     32,   398,     0,     0,   232,   208,    34,     0,     0,  -510,
  822.      0,     0,   233,   234,     0,     0,   913,   914,     0,     0,
  823.     35,    52,    52,    36,     0,     0,     0,   332,     0,     0,
  824.      0,     0,    38,     0,     0,   336,     0,     0,   874,     0,
  825.      0,     0,     0,     0,     0,   256,     0,    32,   524,     0,
  826.    307,    52,     0,    34,     0,   329,     0,   217,   -19,    52,
  827.    -19,   -19,   218,    89,     0,   219,   -19,    35,     0,     0,
  828.     36,     0,     0,     0,     0,     0,   332,     0,     0,    38,
  829.    -19,   220,     0,   -19,   221,   222,     0,     0,   336,     0,
  830.    223,    37,   -19,     0,     0,   224,     0,     0,   330,     0,
  831.    955,     0,     0,     0,     0,     0,     0,     0,     0,   225,
  832.      0,     0,     0,     0,     0,   226,   227,   228,     0,   805,
  833.      0,   229,   230,     0,     0,     0,     0,     0,     0,   231,
  834.      0,     0,     0,     0,     0,     0,     0,   232,   332,     0,
  835.      0,   332,     0,     0,   521,   233,   234,     0,     0,   743,
  836.      0,   528,   -19,   -19,   -19,   -19,   218,    89,     0,   219,
  837.    -19,   529,    52,   530,   531,   532,   533,   534,   535,   536,
  838.    537,   538,   539,   540,   -19,   220,     0,   -19,   221,   222,
  839.      0,     0,     0,     0,   223,    37,   -19,     0,     0,   224,
  840.      0,   541,   177,   410,   411,   412,   413,   414,   415,   416,
  841.    417,   418,   419,   225,     0,     0,     0,     0,     0,   226,
  842.    227,   228,     0,     0,     0,   229,   230,     0,     0,     0,
  843.      0,     0,     0,   231,     0,   542,     0,     0,   543,     0,
  844.      0,   232,     0,     0,     0,     0,     0,   544,   744,   233,
  845.    234,     0,     0,     0,     0,     0,    52,    52,    52,   743,
  846.      0,   528,   -19,   -19,   -19,   -19,   218,    89,     0,   219,
  847.    -19,   529,     0,   530,   531,   532,   533,   534,   535,   536,
  848.    537,   538,   539,   540,   -19,   220,     0,   -19,   221,   222,
  849.      0,     0,     0,     0,   223,    37,   -19,     0,     0,   224,
  850.      0,   541,   177,     0,     0,     0,     0,     0,     0,     0,
  851.      0,     0,     0,   225,     0,     0,     0,     0,     0,   226,
  852.    227,   228,     0,     0,     0,   229,   230,     0,     0,     0,
  853.      0,     0,     0,   231,     0,   542,     0,     0,   543,     0,
  854.      0,   232,     0,     0,     0,     0,     0,   544,   876,   233,
  855.    234,   743,     0,   528,   -19,   -19,   -19,   -19,   218,    89,
  856.      0,   219,   -19,   529,     0,   530,   531,   532,   533,   534,
  857.    535,   536,   537,   538,   539,   540,   -19,   220,     0,   -19,
  858.    221,   222,     0,     0,     0,     0,   223,    37,   -19,     0,
  859.      0,   224,     0,   541,   177,     0,     0,     0,     0,     0,
  860.      0,     0,     0,     0,     0,   225,     0,     0,     0,     0,
  861.      0,   226,   227,   228,     0,     0,     0,   229,   230,     0,
  862.      0,     0,     0,     0,     0,   231,     0,   542,     0,     0,
  863.    543,     0,     0,   232,     0,     0,     0,     0,     0,   544,
  864.    987,   233,   234,   527,     0,   528,   -19,   -19,   -19,   -19,
  865.    218,    89,     0,   219,   -19,   529,     0,   530,   531,   532,
  866.    533,   534,   535,   536,   537,   538,   539,   540,   -19,   220,
  867.      0,   -19,   221,   222,     0,     0,     0,     0,   223,    37,
  868.    -19,     0,     0,   224,     0,   541,   177,     0,     0,     0,
  869.      0,     0,     0,     0,     0,     0,     0,   225,     0,     0,
  870.      0,     0,     0,   226,   227,   228,     0,     0,     0,   229,
  871.    230,     0,     0,     0,     0,     0,     0,   231,     0,   542,
  872.      0,     0,   543,     0,     0,   232,     0,     0,     0,     0,
  873.      0,   544,     0,   233,   234,   750,     0,   528,   -19,   -19,
  874.    -19,   -19,   218,    89,     0,   219,   -19,   529,     0,   530,
  875.    531,   532,   533,   534,   535,   536,   537,   538,   539,   540,
  876.    -19,   220,     0,   -19,   221,   222,     0,     0,     0,     0,
  877.    223,    37,   -19,     0,     0,   224,     0,   541,   177,     0,
  878.      0,     0,     0,     0,     0,     0,     0,     0,     0,   225,
  879.      0,     0,     0,     0,     0,   226,   227,   228,     0,     0,
  880.      0,   229,   230,     0,     0,     0,     0,     0,     0,   231,
  881.      0,   542,     0,     0,   543,     0,     0,   232,     0,     0,
  882.      0,     0,     0,   544,     0,   233,   234,   964,     0,   528,
  883.    -19,   -19,   -19,   -19,   218,    89,     0,   219,   -19,   529,
  884.      0,   530,   531,   532,   533,   534,   535,   536,   537,   538,
  885.    539,   540,   -19,   220,     0,   -19,   221,   222,     0,     0,
  886.      0,     0,   223,    37,   -19,     0,     0,   224,     0,   541,
  887.    177,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  888.      0,   225,     0,     0,     0,     0,     0,   226,   227,   228,
  889.      0,     0,     0,   229,   230,     0,     0,     0,     0,   102,
  890.      0,   231,   -19,   542,   -19,   -19,   543,     0,     0,   232,
  891.    -19,     0,     0,     0,     0,   544,     0,   233,   234,     0,
  892.      0,     0,     0,     0,   -19,     0,     0,   -19,   103,   104,
  893.      0,     0,     0,     0,     0,     0,   -19,   105,   106,     0,
  894.      0,     0,     0,     0,   107,   108,   109,     0,     0,   110,
  895.    111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
  896.    121,   122,   123,   124,     0,   125,   126,     0,     0,     0,
  897.      0,   127,     0,   670,   128,   217,   -19,   -19,   -19,   -19,
  898.    218,    89,   207,   219,   -19,     0,     0,     0,     0,   129,
  899.    130,     0,     0,     0,     0,     0,     0,     0,   -19,   220,
  900.      0,   -19,   221,   222,     0,     0,     0,     0,   223,    37,
  901.    -19,     0,     0,   224,   407,   408,   409,   410,   411,   412,
  902.    413,   414,   415,   416,   417,   418,   419,   225,     0,     0,
  903.      0,     0,     0,   226,   227,   228,     0,     0,     0,   229,
  904.    230,     0,     0,     0,     0,     0,     0,   231,     0,     0,
  905.      0,     0,     0,     0,     0,   232,   208,     0,     0,     0,
  906.   -510,     0,     0,   233,   234,   763,     0,   217,   -19,   -19,
  907.    -19,   -19,   218,    89,   207,   219,   -19,   408,   409,   410,
  908.    411,   412,   413,   414,   415,   416,   417,   418,   419,     0,
  909.    -19,   220,     0,   -19,   221,   222,     0,     0,     0,     0,
  910.    223,    37,   -19,     0,     0,   224,   409,   410,   411,   412,
  911.    413,   414,   415,   416,   417,   418,   419,     0,     0,   225,
  912.      0,     0,     0,     0,     0,   226,   227,   228,     0,     0,
  913.      0,   229,   230,     0,     0,     0,     0,     0,     0,   231,
  914.      0,     0,     0,     0,     0,     0,     0,   232,   208,     0,
  915.      0,     0,  -510,     0,     0,   233,   234,   848,     0,   217,
  916.    -19,   -19,   -19,   -19,   218,    89,     0,   219,   -19,     0,
  917.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  918.      0,     0,   -19,   220,     0,   -19,   221,   222,     0,     0,
  919.      0,     0,   223,    37,   -19,     0,     0,   224,     0,     0,
  920.    849,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  921.      0,   225,     0,     0,     0,     0,     0,   226,   227,   228,
  922.      0,     0,     0,   229,   230,     0,     0,   329,     0,   217,
  923.    -19,   231,   -19,   -19,   218,    89,     0,   219,   -19,   232,
  924.      0,     0,     0,     0,     0,   850,     0,   233,   234,     0,
  925.      0,     0,   -19,   220,     0,   -19,   221,   222,     0,     0,
  926.      0,     0,   223,    37,   -19,     0,     0,   224,     0,     0,
  927.    330,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  928.      0,   225,     0,     0,     0,     0,     0,   226,   227,   228,
  929.      0,     0,     0,   229,   230,     0,     0,   329,     0,   217,
  930.    -19,   231,   -19,   -19,   218,    89,     0,   219,   -19,   232,
  931.      0,     0,     0,     0,     0,     0,   842,   233,   234,     0,
  932.      0,     0,   -19,   220,     0,   -19,   221,   222,     0,     0,
  933.      0,     0,   223,    37,   -19,     0,     0,   224,     0,     0,
  934.    330,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  935.      0,   225,     0,     0,     0,     0,     0,   226,   227,   228,
  936.      0,     0,     0,   229,   230,     0,     0,   329,     0,   217,
  937.    -19,   231,   -19,   -19,   218,    89,     0,   219,   -19,   232,
  938.      0,     0,     0,     0,     0,     0,  -267,   233,   234,     0,
  939.      0,     0,   -19,   220,     0,   -19,   221,   222,     0,     0,
  940.      0,     0,   223,    37,   -19,     0,     0,   224,     0,     0,
  941.    330,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  942.      0,   225,     0,     0,     0,     0,     0,   226,   227,   228,
  943.      0,     0,     0,   229,   230,     0,     0,   393,     0,   217,
  944.    -19,   231,   -19,   -19,   218,    89,     0,   219,   -19,   232,
  945.      0,     0,     0,     0,     0,     0,     0,   233,   234,     0,
  946.      0,     0,   -19,   220,     0,   -19,   221,   222,     0,     0,
  947.      0,     0,   223,    37,   -19,     0,     0,   224,     0,     0,
  948.   -143,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  949.      0,   225,     0,     0,     0,     0,     0,   226,   227,   228,
  950.      0,     0,     0,   229,   230,     0,     0,   605,     0,   217,
  951.    -19,   231,   -19,   -19,   218,    89,     0,   219,   -19,   232,
  952.      0,     0,     0,     0,     0,     0,     0,   233,   234,     0,
  953.      0,     0,   -19,   220,     0,   -19,   221,   222,     0,     0,
  954.      0,     0,   223,    37,   -19,     0,     0,   224,     0,     0,
  955.      0,     0,     0,     0,     0,  -500,     0,     0,     0,     0,
  956.      0,   225,     0,     0,     0,     0,     0,   226,   227,   228,
  957.      0,     0,     0,   229,   230,     0,     0,   635,     0,   217,
  958.    -19,   231,   -19,   -19,   218,    89,     0,   219,   -19,   232,
  959.      0,     0,     0,     0,     0,     0,     0,   233,   234,     0,
  960.      0,     0,   -19,   220,     0,   -19,   221,   222,     0,     0,
  961.      0,     0,   223,    37,   -19,     0,     0,   224,     0,     0,
  962.   -167,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  963.      0,   225,     0,     0,     0,     0,     0,   226,   227,   228,
  964.      0,     0,     0,   229,   230,     0,     0,   605,     0,   217,
  965.    -19,   231,   -19,   -19,   218,    89,     0,   219,   -19,   232,
  966.      0,     0,     0,     0,     0,     0,     0,   233,   234,     0,
  967.      0,     0,   -19,   220,     0,   -19,   221,   222,     0,     0,
  968.      0,     0,   223,    37,   -19,     0,     0,   224,     0,     0,
  969.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  970.      0,   225,     0,     0,     0,     0,     0,   226,   227,   228,
  971.      0,     0,     0,   229,   230,     0,     0,   605,     0,   217,
  972.    -19,   231,   -19,   -19,   218,    89,     0,   219,   -19,   232,
  973.      0,     0,     0,     0,     0,  -500,     0,   233,   234,     0,
  974.      0,     0,   -19,   220,     0,   -19,   221,   222,     0,     0,
  975.      0,     0,   223,    37,   -19,     0,     0,   224,     0,     0,
  976.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  977.      0,   225,     0,     0,     0,     0,     0,   226,   227,   228,
  978.      0,     0,     0,   229,   230,     0,     0,   601,     0,   217,
  979.    -19,   231,   -19,   -19,   218,    89,     0,   219,   -19,   232,
  980.      0,     0,     0,     0,  -500,     0,     0,   233,   234,     0,
  981.      0,     0,   -19,   220,     0,   -19,   221,   222,     0,     0,
  982.      0,     0,   223,    37,   -19,     0,     0,   224,     0,     0,
  983.      0,   294,     0,   -19,   -19,   -19,   -19,   -19,     0,     0,
  984.      0,   225,   -19,     0,     0,     0,     0,   226,   227,   228,
  985.      0,     0,     0,   229,   230,     0,   -19,     0,     0,   -19,
  986.      0,   231,     0,  -294,  -294,  -294,     0,   -19,   -19,   232,
  987.    -19,   -19,     0,     0,     0,     0,     0,   233,   234,   295,
  988.     29,     0,     0,     0,     0,   -19,     0,   207,     0,     0,
  989.      0,     0,     0,   -19,     0,     0,     0,   294,     0,   -19,
  990.    -19,   -19,   -19,   -19,     0,   -19,     0,     0,   -19,     0,
  991.      0,     0,     0,   -19,    37,     0,     0,    39,    40,   499,
  992.   -294,   -19,   -19,     0,     0,   -19,     0,     0,     0,  -296,
  993.   -296,  -296,   183,   -19,   -19,     0,   -19,   -19,     0,     0,
  994.    184,     0,     0,     0,   294,   295,   -19,   -19,   -19,   -19,
  995.    -19,   -19,    43,     0,     0,   -19,     0,     0,     0,   -19,
  996.     44,   208,     0,     0,     0,  -510,     0,     0,    45,   -19,
  997.      0,   -19,   -19,     0,     0,     0,  -295,  -295,  -295,   -19,
  998.    -19,   -19,     0,   -19,   -19,   499,  -296,   -19,     0,     0,
  999.      0,   294,   295,   -19,   -19,   -19,   -19,   -19,   -19,     0,
  1000.      0,     0,   -19,     0,     0,     0,   -19,     0,     0,     0,
  1001.      0,     0,     0,     0,     0,     0,   -19,     0,   -19,   -19,
  1002.      0,     0,     0,  -297,  -297,  -297,   -19,   -19,   -19,     0,
  1003.    -19,   -19,   499,  -295,   -19,     0,     0,     0,     4,   295,
  1004.    -19,   -19,   -19,   -19,   -19,   -19,     0,     0,     0,   -19,
  1005.      0,     0,     0,   -19,     0,     0,     0,     0,     0,     0,
  1006.      0,     0,     5,   -19,     0,   -19,   -19,     0,     0,     6,
  1007.      0,     0,     0,   -19,   -19,   -19,     0,   -19,   -19,   499,
  1008.   -297,   -19,     0,     0,     0,     0,     0,     0,     0,     0,
  1009.      0,     0,   -19,     0,     0,     0,     0,     0,     0,   294,
  1010.    -19,   -19,   -19,   -19,   -19,   -19,     0,     0,     0,     0,
  1011.    -19,     0,   -19,     0,     0,     0,     0,     0,     0,     0,
  1012.    -19,     0,     7,     8,   -19,     0,     9,   -19,   -19,     0,
  1013.      0,  -293,  -293,  -293,     0,   -19,   -19,     0,   -19,   -19,
  1014.      0,     0,     0,     0,     0,     0,   294,   295,   -19,   -19,
  1015.    -19,   -19,   -19,   -19,     0,     0,     0,   -19,     0,     0,
  1016.      0,   -19,     0,     0,     0,     0,     0,     0,     0,     0,
  1017.      0,   -19,     0,   -19,   -19,     0,     0,     0,  -299,  -299,
  1018.   -299,   -19,   -19,   -19,     0,   -19,   -19,     0,  -293,   -19,
  1019.      0,     0,     0,   294,   295,   -19,   -19,   -19,   -19,   -19,
  1020.    -19,     0,     0,     0,   -19,     0,     0,     0,   -19,     0,
  1021.      0,     0,     0,     0,     0,     0,     0,     0,   -19,     0,
  1022.    -19,   -19,     0,     0,     0,  -298,  -298,  -298,   -19,   -19,
  1023.    -19,     0,   -19,   -19,     0,  -299,   -19,     0,     0,     0,
  1024.    294,   295,   -19,   -19,   -19,   -19,   -19,   -19,     0,     0,
  1025.      0,   -19,     0,     0,     0,   -19,     0,     0,     0,     0,
  1026.      0,     0,     0,     0,     0,   -19,     0,   -19,   -19,     0,
  1027.      0,     0,  -300,  -300,  -300,   -19,   -19,   -19,     0,   -19,
  1028.    -19,     0,  -298,   -19,     0,     0,     0,   573,   295,     0,
  1029.      0,   277,     0,     0,   -19,     4,     0,   -19,   -19,   -19,
  1030.    -19,   -19,   -19,     0,     0,     0,   -19,     0,     0,     0,
  1031.      0,     0,     0,     0,   -19,     0,     0,     0,     0,     0,
  1032.    -19,    37,   -19,   -19,   574,    40,     0,     0,     0,  -300,
  1033.    -19,   -19,   -19,     0,   -19,   -19,     0,     0,    26,   575,
  1034.      0,     0,     0,     0,     0,     0,     0,   576,     0,   -19,
  1035.      0,     0,     0,     0,   262,   263,   264,   -19,     0,   577,
  1036.    266,     0,     0,     0,     0,     0,     0,   578,     0,   -19,
  1037.      0,     0,     0,     0,     0,    45,   528,   -19,     0,     7,
  1038.      0,   218,    89,     9,   219,   -19,   529,     0,   530,   531,
  1039.    532,   533,   534,   535,   536,   537,   538,   539,   540,     0,
  1040.    220,     0,     0,   221,   222,     0,     0,     0,     0,   223,
  1041.     37,     0,     0,     0,   224,     0,   541,   177,     0,     0,
  1042.      0,     0,     0,     0,     0,     0,     0,     0,   225,     0,
  1043.      0,     0,     0,     0,   226,   227,   228,     0,     0,   217,
  1044.    229,   230,     0,     0,   218,    89,     0,   219,   231,     0,
  1045.    542,     0,     0,   543,     0,     0,   232,     0,     0,     0,
  1046.      0,     0,   544,   220,   233,   234,   221,   222,     0,     0,
  1047.      0,     0,   223,    37,     0,     0,     0,   224,     0,     0,
  1048.      0,     0,   217,     0,     0,     0,     0,   218,    89,     0,
  1049.    219,   225,     0,     0,     0,     0,     0,   226,   227,   228,
  1050.      0,     0,     0,   229,   230,     0,   220,     0,     0,   221,
  1051.    222,   231,     0,     0,     0,   223,    37,     0,     0,   232,
  1052.    224,     0,     0,     0,   -88,   217,     0,   233,   234,     0,
  1053.    218,    89,     0,   219,   225,     0,     0,     0,     0,     0,
  1054.    226,   227,   228,     0,     0,     0,   229,   230,     0,   220,
  1055.      0,     0,   221,   222,   231,   431,     0,     0,   223,    37,
  1056.      0,     0,   232,   224,     0,     0,     0,     0,   217,     0,
  1057.    233,   234,     0,   218,    89,     0,   219,   225,     0,     0,
  1058.      0,     0,     0,   226,   227,   228,     0,     0,     0,   229,
  1059.    230,     0,   220,     0,     0,   221,   222,   231,     0,     0,
  1060.      0,   223,    37,     0,     0,   232,   224,     0,     0,   789,
  1061.      0,   727,     0,   233,   234,     0,     0,   217,     0,     0,
  1062.    225,     0,   218,    89,     0,   219,   226,   227,   228,     0,
  1063.      0,     0,   229,   230,     0,     0,     0,     0,     0,     0,
  1064.    231,   220,     0,     0,   221,   222,     0,     0,   232,     0,
  1065.    223,    37,     0,     0,     0,   224,   233,   234,     0,     0,
  1066.    217,     0,     0,     0,     0,   218,    89,     0,   219,   225,
  1067.      0,     0,     0,     0,     0,   226,   227,   228,     0,     0,
  1068.      0,   229,   230,     0,   220,     0,     0,   221,   222,   231,
  1069.      0,     0,     0,   223,    37,     0,     0,   232,   224,     0,
  1070.      0,     0,     0,   217,     0,   233,   234,     0,   218,    89,
  1071.      0,   219,   225,     0,     0,     0,     0,     0,   226,   227,
  1072.    228,     0,     0,     0,   229,   230,     0,   220,     0,     0,
  1073.    221,   222,   379,     0,     0,     0,   223,    37,     0,     0,
  1074.    232,   224,     0,    29,    72,    73,    74,    75,   233,   234,
  1075.      0,     0,    34,     0,     0,   225,     0,     0,     0,     0,
  1076.      0,   226,   227,   228,     0,     0,    76,   229,   230,    36,
  1077.     29,    72,    73,    74,    75,   382,     0,    37,    38,    34,
  1078.     39,    40,     0,   232,     0,     0,     0,     0,     0,     0,
  1079.      0,   233,   234,    76,     0,    60,    36,     0,     0,     0,
  1080.      0,     0,     0,    61,    37,    38,     0,    39,    40,     0,
  1081.     62,    63,    64,     0,     0,    65,     0,   573,   256,    31,
  1082.     32,    33,    60,    44,     0,     0,    34,     0,     0,    77,
  1083.     61,    45,     0,     0,     0,     0,     0,    62,    63,    64,
  1084.     35,     0,    65,    36,    29,    30,    31,    32,    33,     0,
  1085.     44,    37,    38,    34,   574,    40,   739,     0,    45,     0,
  1086.      0,     0,     0,     0,     0,     0,     0,    35,     0,   575,
  1087.     36,     0,     0,     0,     0,     0,     0,   576,    37,    38,
  1088.      0,    39,    40,     0,   262,   263,   264,     0,     0,   577,
  1089.    266,    29,   256,    31,    32,    33,    41,   578,     0,     0,
  1090.     34,   573,     0,     0,    42,    45,     0,     0,   207,     0,
  1091.      0,     0,     0,     0,    35,     0,    43,    36,     0,     0,
  1092.      0,     0,     0,     0,    44,    37,    38,     0,    39,    40,
  1093.      0,     0,    45,     0,     0,    37,     0,     0,   574,    40,
  1094.      0,     0,     0,    41,     0,     0,     0,     0,     0,     0,
  1095.      0,    42,     0,   575,   483,    59,     0,     0,     0,     0,
  1096.      0,   576,     0,    43,   827,    59,     0,     0,   262,   263,
  1097.    264,    44,     0,   577,   266,     0,     0,     0,     0,    45,
  1098.      0,   578,   208,     0,     0,     0,  -510,     0,    37,    45,
  1099.      0,   484,    40,     0,   485,     0,     0,     0,    37,     0,
  1100.    486,    39,    40,     0,   828,     0,    60,     0,     0,     0,
  1101.    829,   573,  -525,     0,    61,   277,    60,     0,     0,     0,
  1102.      0,    62,    63,    64,    61,     0,   487,     0,     0,     0,
  1103.      0,    62,    63,    64,    44,     0,    65,     0,    29,    59,
  1104.      0,     0,    45,     0,    44,    37,     0,     0,   574,    40,
  1105.      0,     0,    45,     0,     0,     0,     0,     0,     0,     0,
  1106.      0,     0,     0,   575,     0,     0,     0,     0,     0,     0,
  1107.      0,   576,    37,     0,     0,    39,    40,     0,   262,   263,
  1108.    264,     0,     0,   577,   266,    29,    59,     0,     0,     0,
  1109.     60,   578,     0,     0,     0,     0,     0,     0,    61,    45,
  1110.      0,     0,     0,   198,     0,    62,    63,    64,     0,     0,
  1111.     65,     0,     0,     0,     0,     0,     0,     0,    44,    37,
  1112.      0,     0,    39,    40,    66,  -531,    45,  -531,     0,     0,
  1113.   -531,     0,    29,    59,     0,     0,     0,    60,   573,     0,
  1114.      0,     0,   162,     0,     0,    61,  -531,  -531,     0,  -531,
  1115.      0,  -531,    62,    63,    64,     0,     0,    65,     0,     0,
  1116.      0,     0,     0,     0,     0,    44,    37,     0,     0,    39,
  1117.     40,   736,    37,    45,     0,   574,    40,   163,   164,     0,
  1118.    165,     0,     0,     0,    60,     0,     0,     0,     0,     0,
  1119.    575,  -195,    61,   258,   272,     0,    74,   273,   576,    62,
  1120.     63,    64,    34,     0,    65,   262,   263,   264,     0,     0,
  1121.    577,   266,    44,     0,     0,     0,    76,     0,   578,    36,
  1122.     45,   256,    31,    32,    33,     0,    45,     0,    38,    34,
  1123.    259,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  1124.      0,     0,     0,    35,     0,   260,    36,     0,     0,     0,
  1125.      0,     0,     0,   261,     0,    38,     0,     0,     0,     0,
  1126.    262,   263,   264,     0,     0,   265,   266,     0,     0,     0,
  1127.      0,     0,   347,   267,     0,     0,     0,     0,     0,     0,
  1128.    348,     0,     0,     0,     0,     0,     0,   349,   350,   351,
  1129.      0,     0,   352,   402,   403,   404,     0,     0,   405,   406,
  1130.    407,   408,   409,   410,   411,   412,   413,   414,   415,   416,
  1131.    417,   418,   419,   -90,   402,   403,   404,     0,     0,   405,
  1132.    406,   407,   408,   409,   410,   411,   412,   413,   414,   415,
  1133.    416,   417,   418,   419,     0,     0,   676,   677,   402,   403,
  1134.    404,     0,     0,   405,   406,   407,   408,   409,   410,   411,
  1135.    412,   413,   414,   415,   416,   417,   418,   419,   404,     0,
  1136.      0,   405,   406,   407,   408,   409,   410,   411,   412,   413,
  1137.    414,   415,   416,   417,   418,   419,   406,   407,   408,   409,
  1138.    410,   411,   412,   413,   414,   415,   416,   417,   418,   419
  1139. };
  1140.  
  1141. static const short yycheck[] = {     2,
  1142.      3,    23,    57,    58,    18,    67,   101,   301,    11,   251,
  1143.    214,   165,     2,     3,   168,   511,   225,    19,   170,   228,
  1144.     82,    11,    17,    18,   233,   554,   188,   236,    56,     2,
  1145.      3,   219,   220,   224,    37,   244,   247,   225,    11,   250,
  1146.    228,   354,   181,   182,   193,   233,   542,    37,   236,   224,
  1147.     58,   752,   753,   134,     9,     3,   244,    41,   265,   849,
  1148.    194,     7,    65,    75,     1,    49,     0,     3,     4,     9,
  1149.     33,    34,    35,    44,   864,     0,    29,    79,    49,     3,
  1150.      4,     3,     4,    96,    86,    45,    23,     3,    25,    37,
  1151.     10,    28,   246,    96,     3,     4,     9,   231,   101,   194,
  1152.      3,     4,     9,    40,     9,    41,    96,    44,    45,   243,
  1153.     47,   101,    49,    37,   136,     3,     4,   266,    40,   174,
  1154.    175,   176,    75,    96,   324,     3,     4,    90,    37,    89,
  1155.     90,    40,    78,    88,    37,    83,   231,    40,    75,    76,
  1156.     38,    78,    49,     9,   206,   173,    44,    83,    88,    13,
  1157.    163,    87,    89,    75,    18,   366,   367,   160,    40,    83,
  1158.    163,    83,    10,    55,    84,    45,   174,   175,    88,   250,
  1159.    160,    63,    49,   163,    83,    88,    90,     3,     4,   192,
  1160.     83,    88,    91,    88,    49,    75,     1,   160,    91,   192,
  1161.    163,   194,     1,    75,   196,    83,   387,    45,    45,     3,
  1162.      4,    49,   192,   445,   194,    83,   345,   346,    23,    89,
  1163.     25,    88,   387,    28,     3,     4,    20,   312,    44,   192,
  1164.     45,     3,     4,   285,    89,   425,     4,   381,   231,    44,
  1165.     45,    23,    47,     1,    49,    44,    84,    41,     2,     3,
  1166.    243,   231,    49,    90,    79,   379,    81,    11,   382,   449,
  1167.    457,   458,    45,   243,     3,     4,   463,    49,    25,    48,
  1168.     40,    28,   265,    78,     3,    90,    48,   131,   270,    45,
  1169.    134,    45,   973,   974,    89,   265,    44,    45,    45,    83,
  1170.     47,    88,   337,    87,   379,    13,    90,   382,   442,    40,
  1171.     18,    45,   265,    89,   428,    75,    89,    45,   301,    48,
  1172.     89,    90,    45,   298,   299,   439,   308,    89,    90,   404,
  1173.    472,   301,    45,    89,    88,    43,    45,   466,    45,   519,
  1174.     40,    43,    89,    78,    75,    76,    45,    78,   301,   337,
  1175.     45,   426,    96,    44,    89,    89,   431,    65,    89,   342,
  1176.    395,    89,    40,    78,   439,   209,    89,   211,    45,   352,
  1177.      3,     4,   342,    75,    89,    75,    89,   511,    40,    88,
  1178.    673,    88,    45,   517,    40,    41,    42,   370,    44,    88,
  1179.    577,   235,    40,    88,   585,    40,   379,    75,    76,   382,
  1180.    370,    40,   586,   587,    60,    61,   250,    40,   542,   379,
  1181.     88,    88,   382,    75,    76,    40,   160,   370,    40,   163,
  1182.    600,   930,    47,     3,     4,    88,    88,    75,    76,    40,
  1183.     75,    76,   140,   141,   142,   564,    75,   145,   480,    95,
  1184.    559,   560,     3,    88,    40,   428,   488,   627,   192,   105,
  1185.     75,   493,   296,    75,    76,   299,   439,    75,   428,   534,
  1186.     40,   305,   642,   538,    75,    76,    88,    40,    49,   439,
  1187.    657,   651,   465,   181,   182,    90,   656,    88,   471,    75,
  1188.     76,     4,   465,    93,     7,     3,   468,   331,   471,    40,
  1189.     44,    40,    88,     7,   487,   465,   628,    30,    31,   492,
  1190.      4,   471,    75,    76,   487,    78,   162,    49,    41,   492,
  1191.    512,    40,   465,    89,    90,    40,    93,   487,   471,    37,
  1192.    996,   265,   492,    44,    75,    76,    75,   183,   184,    40,
  1193.     90,     3,    55,   713,   487,   191,    63,    64,    65,   492,
  1194.     63,   583,    67,    68,    25,   687,    75,    70,    71,    72,
  1195.     75,    76,    75,   695,   548,    40,    93,   301,    30,    31,
  1196.    834,   835,   836,    44,    75,    37,   549,    89,    49,    41,
  1197.    563,   554,   547,   548,   698,   699,   700,   652,    40,   549,
  1198.    563,     3,   714,    88,   554,   772,   773,   774,   296,    47,
  1199.     75,    76,   594,   563,   577,     3,     4,     5,     6,     7,
  1200.     41,    40,   637,    45,   260,   261,    88,   577,    25,   798,
  1201.    563,   267,     9,    75,   748,    37,     6,     7,    40,    41,
  1202.      3,    29,    12,    88,   577,     8,   370,    44,    41,   809,
  1203.    798,    78,    49,    55,   549,    43,    75,   345,   346,    29,
  1204.    682,    63,   826,   718,     3,     4,   721,   722,    38,    93,
  1205.    692,     3,     4,    75,    45,     7,     3,     4,   366,   367,
  1206.     88,    83,    88,     5,     6,     7,    93,     6,     7,    91,
  1207.     12,    45,     4,    12,     6,     7,    75,   752,   753,    28,
  1208.     12,    88,   862,    89,    90,    37,    88,    29,    40,    41,
  1209.     29,   347,   348,    88,    26,   737,    38,    29,    40,    38,
  1210.    742,    40,    88,    55,   548,    93,    38,   839,    49,    50,
  1211.     88,    63,   368,   688,    10,   698,   699,   700,    70,    71,
  1212.     72,   465,     3,    75,   866,    47,     7,   471,   698,   699,
  1213.    700,    83,     4,    75,     6,     7,    75,   720,   721,    91,
  1214.     12,   585,    45,   487,    75,   698,   699,   700,   492,   732,
  1215.    720,   721,    89,    90,    26,    88,   888,    29,    88,    40,
  1216.    879,   880,   732,    89,    90,    88,    38,    75,   751,   219,
  1217.    220,   846,   956,   915,    55,   758,    47,     6,     7,   487,
  1218.    855,   751,    63,    12,   492,     3,     4,     5,   830,    70,
  1219.     71,    72,    48,    88,    75,    76,    40,    29,    25,   455,
  1220.     29,    49,    83,    93,    93,   720,    49,    49,   464,    38,
  1221.     49,    40,    89,    75,   470,    33,    34,   732,   950,   563,
  1222.     88,   953,    47,    67,    68,   944,   945,    90,   484,    73,
  1223.     74,    75,    76,   577,    75,   491,   751,    75,    75,    49,
  1224.    548,   685,    89,    34,    89,   501,    75,   503,   504,     7,
  1225.     44,   834,   835,   836,    89,    14,     3,   859,    49,    93,
  1226.      7,   844,   996,    47,   834,   835,   836,    90,   910,   577,
  1227.     49,   163,    88,   856,   844,    88,   918,   585,   170,   171,
  1228.     88,   834,   835,   836,    88,    88,   856,    93,    93,   872,
  1229.     37,    88,    88,    40,    41,     3,     4,     5,   973,   974,
  1230.    192,    88,   872,    88,    93,    88,   562,    88,    55,   163,
  1231.    985,   567,   568,   569,    88,    88,    63,   171,    88,   575,
  1232.    576,    75,   578,    88,    75,    33,    34,    89,    75,   844,
  1233.   1005,    61,    62,    63,    64,    65,    83,     3,   192,    89,
  1234.     75,   856,    90,    89,    91,    89,   137,   930,    90,    88,
  1235.    933,    25,    88,    93,   698,   699,   700,   872,   149,    90,
  1236.    930,     3,    88,   933,    55,    88,   157,    88,    88,    88,
  1237.     44,    37,    63,    47,    40,    41,    93,   168,   961,    70,
  1238.     71,    72,   965,   966,    75,  1020,  1021,    88,    47,    55,
  1239.      3,   961,    49,    88,    88,   965,   966,    63,    40,    15,
  1240.     89,   984,    76,   295,    78,   661,   989,    13,    90,    75,
  1241.     89,    17,    18,    55,   984,    88,    90,    83,   933,   989,
  1242.     89,    63,    44,    88,   215,    91,    89,    89,    70,    71,
  1243.     72,    45,   324,    75,    76,    75,    88,    43,   330,  1022,
  1244.   1023,    83,    49,    88,    90,    88,   961,    75,     9,    90,
  1245.    965,   966,  1022,  1023,     4,     5,     6,     7,    89,    65,
  1246.     89,    88,    12,    75,   772,   773,   774,    88,    45,   984,
  1247.    324,     5,     6,     7,   989,     3,    26,    88,    12,    29,
  1248.     58,    59,    60,    61,    62,    63,    64,    65,    38,    88,
  1249.    834,   835,   836,   385,    89,    29,   287,    89,    88,     9,
  1250.    756,   757,   293,    89,    38,     9,    89,  1022,  1023,   401,
  1251.    402,   403,     0,   405,   406,   407,   408,   409,   410,   411,
  1252.    412,   413,   414,   415,   416,   417,   418,   419,     0,    26,
  1253.      3,   385,    11,   425,   140,   141,   142,   328,    56,   145,
  1254.     11,   517,   246,   721,   150,   437,   438,    79,     5,     6,
  1255.      7,   443,    37,   547,   189,    12,   274,   449,   814,   959,
  1256.    816,   817,   818,   789,     3,     4,     5,     6,     7,   825,
  1257.    591,   425,    29,    12,   287,   181,   182,   833,   377,   471,
  1258.    474,    38,    37,   189,   299,   589,   377,    26,   561,  1006,
  1259.     29,    40,  1008,   485,   486,   449,   211,    -1,    37,    38,
  1260.    748,    40,    41,   370,    43,    -1,    -1,    -1,    -1,    -1,
  1261.     49,    -1,     4,     5,     6,     7,    55,   471,   224,    -1,
  1262.     12,    -1,    -1,    -1,    63,   881,   882,   519,   884,   885,
  1263.    886,    70,    71,    72,    26,    -1,    75,    29,    -1,    -1,
  1264.    246,    -1,    -1,    -1,    83,   251,    38,    -1,    -1,   440,
  1265.     -1,     1,    91,     3,     4,     5,     6,     7,     8,     9,
  1266.     10,    11,    12,    -1,    -1,   519,    -1,    -1,    -1,    -1,
  1267.     -1,   563,    -1,    -1,    -1,    -1,    26,    27,    -1,    29,
  1268.     30,    31,    -1,   474,    -1,    -1,    36,    37,    38,    -1,
  1269.    296,    41,   298,   299,    -1,    -1,   588,    59,    60,    61,
  1270.     62,    63,    64,    65,    -1,    55,    -1,   599,   600,   563,
  1271.     -1,    61,    62,    63,    -1,    -1,    -1,    67,    68,     3,
  1272.      4,    -1,    -1,    -1,    -1,    75,   517,    -1,    -1,    -1,
  1273.     -1,    -1,    -1,    83,    84,   627,   628,    -1,    88,   345,
  1274.    346,    91,    92,    -1,     3,    -1,   600,    -1,   539,    -1,
  1275.    642,    10,    -1,    37,    -1,    -1,    40,    41,    -1,   651,
  1276.    366,   367,    -1,    -1,   656,    -1,    -1,    -1,    -1,    -1,
  1277.     -1,    55,    -1,   627,    -1,   381,    -1,    61,    62,    63,
  1278.     -1,    40,    -1,    67,    68,    -1,    -1,   679,   642,    -1,
  1279.     -1,    75,    -1,    -1,    -1,    -1,    55,   651,   589,    83,
  1280.     -1,    -1,   656,    -1,    63,    -1,    -1,    91,    92,    -1,
  1281.     -1,    70,    71,    72,    -1,    -1,    75,    76,    -1,    -1,
  1282.     -1,   713,   714,    -1,    83,    84,    -1,    -1,    -1,    88,
  1283.    436,    -1,     4,     5,     6,     7,   442,    -1,    -1,   445,
  1284.     12,    -1,     1,    -1,     3,     4,     5,     6,     7,     8,
  1285.      9,    10,    11,    12,    26,    -1,    -1,    29,    -1,   713,
  1286.     -1,    -1,    -1,    -1,    -1,    -1,    38,    26,    27,    -1,
  1287.     29,    30,    31,    -1,    -1,    -1,    -1,    36,    37,    38,
  1288.     -1,   487,    41,    -1,   675,    -1,   492,    57,    58,    59,
  1289.     60,    61,    62,    63,    64,    65,    55,   789,    -1,    -1,
  1290.    792,    -1,    61,    62,    63,    -1,    -1,    -1,    67,    68,
  1291.    802,    -1,    -1,    -1,    -1,    -1,    75,   809,     4,    -1,
  1292.      6,     7,    -1,    -1,    83,    84,    12,    -1,    -1,    88,
  1293.     -1,    -1,    91,    92,    -1,    -1,   828,   829,    -1,    -1,
  1294.     26,   547,   548,    29,    -1,    -1,    -1,   839,    -1,    -1,
  1295.     -1,    -1,    38,    -1,    -1,   809,    -1,    -1,   749,    -1,
  1296.     -1,    -1,    -1,    -1,    -1,     4,    -1,     6,     7,    -1,
  1297.    862,   577,    -1,    12,    -1,     1,    -1,     3,     4,   585,
  1298.      6,     7,     8,     9,    -1,    11,    12,    26,    -1,    -1,
  1299.     29,    -1,    -1,    -1,    -1,    -1,   888,    -1,    -1,    38,
  1300.     26,    27,    -1,    29,    30,    31,    -1,    -1,   862,    -1,
  1301.     36,    37,    38,    -1,    -1,    41,    -1,    -1,    44,    -1,
  1302.    912,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    55,
  1303.     -1,    -1,    -1,    -1,    -1,    61,    62,    63,    -1,   645,
  1304.     -1,    67,    68,    -1,    -1,    -1,    -1,    -1,    -1,    75,
  1305.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    83,   950,    -1,
  1306.     -1,   953,    -1,    -1,    90,    91,    92,    -1,    -1,     1,
  1307.     -1,     3,     4,     5,     6,     7,     8,     9,    -1,    11,
  1308.     12,    13,   688,    15,    16,    17,    18,    19,    20,    21,
  1309.     22,    23,    24,    25,    26,    27,    -1,    29,    30,    31,
  1310.     -1,    -1,    -1,    -1,    36,    37,    38,    -1,    -1,    41,
  1311.     -1,    43,    44,    56,    57,    58,    59,    60,    61,    62,
  1312.     63,    64,    65,    55,    -1,    -1,    -1,    -1,    -1,    61,
  1313.     62,    63,    -1,    -1,    -1,    67,    68,    -1,    -1,    -1,
  1314.     -1,    -1,    -1,    75,    -1,    77,    -1,    -1,    80,    -1,
  1315.     -1,    83,    -1,    -1,    -1,    -1,    -1,    89,    90,    91,
  1316.     92,    -1,    -1,    -1,    -1,    -1,   772,   773,   774,     1,
  1317.     -1,     3,     4,     5,     6,     7,     8,     9,    -1,    11,
  1318.     12,    13,    -1,    15,    16,    17,    18,    19,    20,    21,
  1319.     22,    23,    24,    25,    26,    27,    -1,    29,    30,    31,
  1320.     -1,    -1,    -1,    -1,    36,    37,    38,    -1,    -1,    41,
  1321.     -1,    43,    44,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  1322.     -1,    -1,    -1,    55,    -1,    -1,    -1,    -1,    -1,    61,
  1323.     62,    63,    -1,    -1,    -1,    67,    68,    -1,    -1,    -1,
  1324.     -1,    -1,    -1,    75,    -1,    77,    -1,    -1,    80,    -1,
  1325.     -1,    83,    -1,    -1,    -1,    -1,    -1,    89,    90,    91,
  1326.     92,     1,    -1,     3,     4,     5,     6,     7,     8,     9,
  1327.     -1,    11,    12,    13,    -1,    15,    16,    17,    18,    19,
  1328.     20,    21,    22,    23,    24,    25,    26,    27,    -1,    29,
  1329.     30,    31,    -1,    -1,    -1,    -1,    36,    37,    38,    -1,
  1330.     -1,    41,    -1,    43,    44,    -1,    -1,    -1,    -1,    -1,
  1331.     -1,    -1,    -1,    -1,    -1,    55,    -1,    -1,    -1,    -1,
  1332.     -1,    61,    62,    63,    -1,    -1,    -1,    67,    68,    -1,
  1333.     -1,    -1,    -1,    -1,    -1,    75,    -1,    77,    -1,    -1,
  1334.     80,    -1,    -1,    83,    -1,    -1,    -1,    -1,    -1,    89,
  1335.     90,    91,    92,     1,    -1,     3,     4,     5,     6,     7,
  1336.      8,     9,    -1,    11,    12,    13,    -1,    15,    16,    17,
  1337.     18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
  1338.     -1,    29,    30,    31,    -1,    -1,    -1,    -1,    36,    37,
  1339.     38,    -1,    -1,    41,    -1,    43,    44,    -1,    -1,    -1,
  1340.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    55,    -1,    -1,
  1341.     -1,    -1,    -1,    61,    62,    63,    -1,    -1,    -1,    67,
  1342.     68,    -1,    -1,    -1,    -1,    -1,    -1,    75,    -1,    77,
  1343.     -1,    -1,    80,    -1,    -1,    83,    -1,    -1,    -1,    -1,
  1344.     -1,    89,    -1,    91,    92,     1,    -1,     3,     4,     5,
  1345.      6,     7,     8,     9,    -1,    11,    12,    13,    -1,    15,
  1346.     16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
  1347.     26,    27,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
  1348.     36,    37,    38,    -1,    -1,    41,    -1,    43,    44,    -1,
  1349.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    55,
  1350.     -1,    -1,    -1,    -1,    -1,    61,    62,    63,    -1,    -1,
  1351.     -1,    67,    68,    -1,    -1,    -1,    -1,    -1,    -1,    75,
  1352.     -1,    77,    -1,    -1,    80,    -1,    -1,    83,    -1,    -1,
  1353.     -1,    -1,    -1,    89,    -1,    91,    92,     1,    -1,     3,
  1354.      4,     5,     6,     7,     8,     9,    -1,    11,    12,    13,
  1355.     -1,    15,    16,    17,    18,    19,    20,    21,    22,    23,
  1356.     24,    25,    26,    27,    -1,    29,    30,    31,    -1,    -1,
  1357.     -1,    -1,    36,    37,    38,    -1,    -1,    41,    -1,    43,
  1358.     44,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  1359.     -1,    55,    -1,    -1,    -1,    -1,    -1,    61,    62,    63,
  1360.     -1,    -1,    -1,    67,    68,    -1,    -1,    -1,    -1,     1,
  1361.     -1,    75,     4,    77,     6,     7,    80,    -1,    -1,    83,
  1362.     12,    -1,    -1,    -1,    -1,    89,    -1,    91,    92,    -1,
  1363.     -1,    -1,    -1,    -1,    26,    -1,    -1,    29,    30,    31,
  1364.     -1,    -1,    -1,    -1,    -1,    -1,    38,    39,    40,    -1,
  1365.     -1,    -1,    -1,    -1,    46,    47,    48,    -1,    -1,    51,
  1366.     52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
  1367.     62,    63,    64,    65,    -1,    67,    68,    -1,    -1,    -1,
  1368.     -1,    73,    -1,     1,    76,     3,     4,     5,     6,     7,
  1369.      8,     9,    10,    11,    12,    -1,    -1,    -1,    -1,    91,
  1370.     92,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    26,    27,
  1371.     -1,    29,    30,    31,    -1,    -1,    -1,    -1,    36,    37,
  1372.     38,    -1,    -1,    41,    53,    54,    55,    56,    57,    58,
  1373.     59,    60,    61,    62,    63,    64,    65,    55,    -1,    -1,
  1374.     -1,    -1,    -1,    61,    62,    63,    -1,    -1,    -1,    67,
  1375.     68,    -1,    -1,    -1,    -1,    -1,    -1,    75,    -1,    -1,
  1376.     -1,    -1,    -1,    -1,    -1,    83,    84,    -1,    -1,    -1,
  1377.     88,    -1,    -1,    91,    92,     1,    -1,     3,     4,     5,
  1378.      6,     7,     8,     9,    10,    11,    12,    54,    55,    56,
  1379.     57,    58,    59,    60,    61,    62,    63,    64,    65,    -1,
  1380.     26,    27,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
  1381.     36,    37,    38,    -1,    -1,    41,    55,    56,    57,    58,
  1382.     59,    60,    61,    62,    63,    64,    65,    -1,    -1,    55,
  1383.     -1,    -1,    -1,    -1,    -1,    61,    62,    63,    -1,    -1,
  1384.     -1,    67,    68,    -1,    -1,    -1,    -1,    -1,    -1,    75,
  1385.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    83,    84,    -1,
  1386.     -1,    -1,    88,    -1,    -1,    91,    92,     1,    -1,     3,
  1387.      4,     5,     6,     7,     8,     9,    -1,    11,    12,    -1,
  1388.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  1389.     -1,    -1,    26,    27,    -1,    29,    30,    31,    -1,    -1,
  1390.     -1,    -1,    36,    37,    38,    -1,    -1,    41,    -1,    -1,
  1391.     44,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  1392.     -1,    55,    -1,    -1,    -1,    -1,    -1,    61,    62,    63,
  1393.     -1,    -1,    -1,    67,    68,    -1,    -1,     1,    -1,     3,
  1394.      4,    75,     6,     7,     8,     9,    -1,    11,    12,    83,
  1395.     -1,    -1,    -1,    -1,    -1,    89,    -1,    91,    92,    -1,
  1396.     -1,    -1,    26,    27,    -1,    29,    30,    31,    -1,    -1,
  1397.     -1,    -1,    36,    37,    38,    -1,    -1,    41,    -1,    -1,
  1398.     44,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  1399.     -1,    55,    -1,    -1,    -1,    -1,    -1,    61,    62,    63,
  1400.     -1,    -1,    -1,    67,    68,    -1,    -1,     1,    -1,     3,
  1401.      4,    75,     6,     7,     8,     9,    -1,    11,    12,    83,
  1402.     -1,    -1,    -1,    -1,    -1,    -1,    90,    91,    92,    -1,
  1403.     -1,    -1,    26,    27,    -1,    29,    30,    31,    -1,    -1,
  1404.     -1,    -1,    36,    37,    38,    -1,    -1,    41,    -1,    -1,
  1405.     44,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  1406.     -1,    55,    -1,    -1,    -1,    -1,    -1,    61,    62,    63,
  1407.     -1,    -1,    -1,    67,    68,    -1,    -1,     1,    -1,     3,
  1408.      4,    75,     6,     7,     8,     9,    -1,    11,    12,    83,
  1409.     -1,    -1,    -1,    -1,    -1,    -1,    90,    91,    92,    -1,
  1410.     -1,    -1,    26,    27,    -1,    29,    30,    31,    -1,    -1,
  1411.     -1,    -1,    36,    37,    38,    -1,    -1,    41,    -1,    -1,
  1412.     44,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  1413.     -1,    55,    -1,    -1,    -1,    -1,    -1,    61,    62,    63,
  1414.     -1,    -1,    -1,    67,    68,    -1,    -1,     1,    -1,     3,
  1415.      4,    75,     6,     7,     8,     9,    -1,    11,    12,    83,
  1416.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    91,    92,    -1,
  1417.     -1,    -1,    26,    27,    -1,    29,    30,    31,    -1,    -1,
  1418.     -1,    -1,    36,    37,    38,    -1,    -1,    41,    -1,    -1,
  1419.     44,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  1420.     -1,    55,    -1,    -1,    -1,    -1,    -1,    61,    62,    63,
  1421.     -1,    -1,    -1,    67,    68,    -1,    -1,     1,    -1,     3,
  1422.      4,    75,     6,     7,     8,     9,    -1,    11,    12,    83,
  1423.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    91,    92,    -1,
  1424.     -1,    -1,    26,    27,    -1,    29,    30,    31,    -1,    -1,
  1425.     -1,    -1,    36,    37,    38,    -1,    -1,    41,    -1,    -1,
  1426.     -1,    -1,    -1,    -1,    -1,    49,    -1,    -1,    -1,    -1,
  1427.     -1,    55,    -1,    -1,    -1,    -1,    -1,    61,    62,    63,
  1428.     -1,    -1,    -1,    67,    68,    -1,    -1,     1,    -1,     3,
  1429.      4,    75,     6,     7,     8,     9,    -1,    11,    12,    83,
  1430.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    91,    92,    -1,
  1431.     -1,    -1,    26,    27,    -1,    29,    30,    31,    -1,    -1,
  1432.     -1,    -1,    36,    37,    38,    -1,    -1,    41,    -1,    -1,
  1433.     44,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  1434.     -1,    55,    -1,    -1,    -1,    -1,    -1,    61,    62,    63,
  1435.     -1,    -1,    -1,    67,    68,    -1,    -1,     1,    -1,     3,
  1436.      4,    75,     6,     7,     8,     9,    -1,    11,    12,    83,
  1437.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    91,    92,    -1,
  1438.     -1,    -1,    26,    27,    -1,    29,    30,    31,    -1,    -1,
  1439.     -1,    -1,    36,    37,    38,    -1,    -1,    41,    -1,    -1,
  1440.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  1441.     -1,    55,    -1,    -1,    -1,    -1,    -1,    61,    62,    63,
  1442.     -1,    -1,    -1,    67,    68,    -1,    -1,     1,    -1,     3,
  1443.      4,    75,     6,     7,     8,     9,    -1,    11,    12,    83,
  1444.     -1,    -1,    -1,    -1,    -1,    89,    -1,    91,    92,    -1,
  1445.     -1,    -1,    26,    27,    -1,    29,    30,    31,    -1,    -1,
  1446.     -1,    -1,    36,    37,    38,    -1,    -1,    41,    -1,    -1,
  1447.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  1448.     -1,    55,    -1,    -1,    -1,    -1,    -1,    61,    62,    63,
  1449.     -1,    -1,    -1,    67,    68,    -1,    -1,     1,    -1,     3,
  1450.      4,    75,     6,     7,     8,     9,    -1,    11,    12,    83,
  1451.     -1,    -1,    -1,    -1,    88,    -1,    -1,    91,    92,    -1,
  1452.     -1,    -1,    26,    27,    -1,    29,    30,    31,    -1,    -1,
  1453.     -1,    -1,    36,    37,    38,    -1,    -1,    41,    -1,    -1,
  1454.     -1,     1,    -1,     3,     4,     5,     6,     7,    -1,    -1,
  1455.     -1,    55,    12,    -1,    -1,    -1,    -1,    61,    62,    63,
  1456.     -1,    -1,    -1,    67,    68,    -1,    26,    -1,    -1,    29,
  1457.     -1,    75,    -1,    33,    34,    35,    -1,    37,    38,    83,
  1458.     40,    41,    -1,    -1,    -1,    -1,    -1,    91,    92,    49,
  1459.      3,    -1,    -1,    -1,    -1,    55,    -1,    10,    -1,    -1,
  1460.     -1,    -1,    -1,    63,    -1,    -1,    -1,     1,    -1,     3,
  1461.      4,     5,     6,     7,    -1,    75,    -1,    -1,    12,    -1,
  1462.     -1,    -1,    -1,    83,    37,    -1,    -1,    40,    41,    89,
  1463.     90,    91,    26,    -1,    -1,    29,    -1,    -1,    -1,    33,
  1464.     34,    35,    55,    37,    38,    -1,    40,    41,    -1,    -1,
  1465.     63,    -1,    -1,    -1,     1,    49,     3,     4,     5,     6,
  1466.      7,    55,    75,    -1,    -1,    12,    -1,    -1,    -1,    63,
  1467.     83,    84,    -1,    -1,    -1,    88,    -1,    -1,    91,    26,
  1468.     -1,    75,    29,    -1,    -1,    -1,    33,    34,    35,    83,
  1469.     37,    38,    -1,    40,    41,    89,    90,    91,    -1,    -1,
  1470.     -1,     1,    49,     3,     4,     5,     6,     7,    55,    -1,
  1471.     -1,    -1,    12,    -1,    -1,    -1,    63,    -1,    -1,    -1,
  1472.     -1,    -1,    -1,    -1,    -1,    -1,    26,    -1,    75,    29,
  1473.     -1,    -1,    -1,    33,    34,    35,    83,    37,    38,    -1,
  1474.     40,    41,    89,    90,    91,    -1,    -1,    -1,     1,    49,
  1475.      3,     4,     5,     6,     7,    55,    -1,    -1,    -1,    12,
  1476.     -1,    -1,    -1,    63,    -1,    -1,    -1,    -1,    -1,    -1,
  1477.     -1,    -1,    25,    26,    -1,    75,    29,    -1,    -1,    32,
  1478.     -1,    -1,    -1,    83,    37,    38,    -1,    40,    41,    89,
  1479.     90,    91,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  1480.     -1,    -1,    55,    -1,    -1,    -1,    -1,    -1,    -1,     1,
  1481.     63,     3,     4,     5,     6,     7,    -1,    -1,    -1,    -1,
  1482.     12,    -1,    75,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  1483.     83,    -1,    85,    86,    26,    -1,    89,    29,    91,    -1,
  1484.     -1,    33,    34,    35,    -1,    37,    38,    -1,    40,    41,
  1485.     -1,    -1,    -1,    -1,    -1,    -1,     1,    49,     3,     4,
  1486.      5,     6,     7,    55,    -1,    -1,    -1,    12,    -1,    -1,
  1487.     -1,    63,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  1488.     -1,    26,    -1,    75,    29,    -1,    -1,    -1,    33,    34,
  1489.     35,    83,    37,    38,    -1,    40,    41,    -1,    90,    91,
  1490.     -1,    -1,    -1,     1,    49,     3,     4,     5,     6,     7,
  1491.     55,    -1,    -1,    -1,    12,    -1,    -1,    -1,    63,    -1,
  1492.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    26,    -1,
  1493.     75,    29,    -1,    -1,    -1,    33,    34,    35,    83,    37,
  1494.     38,    -1,    40,    41,    -1,    90,    91,    -1,    -1,    -1,
  1495.      1,    49,     3,     4,     5,     6,     7,    55,    -1,    -1,
  1496.     -1,    12,    -1,    -1,    -1,    63,    -1,    -1,    -1,    -1,
  1497.     -1,    -1,    -1,    -1,    -1,    26,    -1,    75,    29,    -1,
  1498.     -1,    -1,    33,    34,    35,    83,    37,    38,    -1,    40,
  1499.     41,    -1,    90,    91,    -1,    -1,    -1,     3,    49,    -1,
  1500.     -1,     7,    -1,    -1,    55,     1,    -1,     3,     4,     5,
  1501.      6,     7,    63,    -1,    -1,    -1,    12,    -1,    -1,    -1,
  1502.     -1,    -1,    -1,    -1,    75,    -1,    -1,    -1,    -1,    -1,
  1503.     26,    37,    83,    29,    40,    41,    -1,    -1,    -1,    90,
  1504.     91,    37,    38,    -1,    40,    41,    -1,    -1,    44,    55,
  1505.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    63,    -1,    55,
  1506.     -1,    -1,    -1,    -1,    70,    71,    72,    63,    -1,    75,
  1507.     76,    -1,    -1,    -1,    -1,    -1,    -1,    83,    -1,    75,
  1508.     -1,    -1,    -1,    -1,    -1,    91,     3,    83,    -1,    85,
  1509.     -1,     8,     9,    89,    11,    91,    13,    -1,    15,    16,
  1510.     17,    18,    19,    20,    21,    22,    23,    24,    25,    -1,
  1511.     27,    -1,    -1,    30,    31,    -1,    -1,    -1,    -1,    36,
  1512.     37,    -1,    -1,    -1,    41,    -1,    43,    44,    -1,    -1,
  1513.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    55,    -1,
  1514.     -1,    -1,    -1,    -1,    61,    62,    63,    -1,    -1,     3,
  1515.     67,    68,    -1,    -1,     8,     9,    -1,    11,    75,    -1,
  1516.     77,    -1,    -1,    80,    -1,    -1,    83,    -1,    -1,    -1,
  1517.     -1,    -1,    89,    27,    91,    92,    30,    31,    -1,    -1,
  1518.     -1,    -1,    36,    37,    -1,    -1,    -1,    41,    -1,    -1,
  1519.     -1,    -1,     3,    -1,    -1,    -1,    -1,     8,     9,    -1,
  1520.     11,    55,    -1,    -1,    -1,    -1,    -1,    61,    62,    63,
  1521.     -1,    -1,    -1,    67,    68,    -1,    27,    -1,    -1,    30,
  1522.     31,    75,    -1,    -1,    -1,    36,    37,    -1,    -1,    83,
  1523.     41,    -1,    -1,    -1,    88,     3,    -1,    91,    92,    -1,
  1524.      8,     9,    -1,    11,    55,    -1,    -1,    -1,    -1,    -1,
  1525.     61,    62,    63,    -1,    -1,    -1,    67,    68,    -1,    27,
  1526.     -1,    -1,    30,    31,    75,    76,    -1,    -1,    36,    37,
  1527.     -1,    -1,    83,    41,    -1,    -1,    -1,    -1,     3,    -1,
  1528.     91,    92,    -1,     8,     9,    -1,    11,    55,    -1,    -1,
  1529.     -1,    -1,    -1,    61,    62,    63,    -1,    -1,    -1,    67,
  1530.     68,    -1,    27,    -1,    -1,    30,    31,    75,    -1,    -1,
  1531.     -1,    36,    37,    -1,    -1,    83,    41,    -1,    -1,    44,
  1532.     -1,    89,    -1,    91,    92,    -1,    -1,     3,    -1,    -1,
  1533.     55,    -1,     8,     9,    -1,    11,    61,    62,    63,    -1,
  1534.     -1,    -1,    67,    68,    -1,    -1,    -1,    -1,    -1,    -1,
  1535.     75,    27,    -1,    -1,    30,    31,    -1,    -1,    83,    -1,
  1536.     36,    37,    -1,    -1,    -1,    41,    91,    92,    -1,    -1,
  1537.      3,    -1,    -1,    -1,    -1,     8,     9,    -1,    11,    55,
  1538.     -1,    -1,    -1,    -1,    -1,    61,    62,    63,    -1,    -1,
  1539.     -1,    67,    68,    -1,    27,    -1,    -1,    30,    31,    75,
  1540.     -1,    -1,    -1,    36,    37,    -1,    -1,    83,    41,    -1,
  1541.     -1,    -1,    -1,     3,    -1,    91,    92,    -1,     8,     9,
  1542.     -1,    11,    55,    -1,    -1,    -1,    -1,    -1,    61,    62,
  1543.     63,    -1,    -1,    -1,    67,    68,    -1,    27,    -1,    -1,
  1544.     30,    31,    75,    -1,    -1,    -1,    36,    37,    -1,    -1,
  1545.     83,    41,    -1,     3,     4,     5,     6,     7,    91,    92,
  1546.     -1,    -1,    12,    -1,    -1,    55,    -1,    -1,    -1,    -1,
  1547.     -1,    61,    62,    63,    -1,    -1,    26,    67,    68,    29,
  1548.      3,     4,     5,     6,     7,    75,    -1,    37,    38,    12,
  1549.     40,    41,    -1,    83,    -1,    -1,    -1,    -1,    -1,    -1,
  1550.     -1,    91,    92,    26,    -1,    55,    29,    -1,    -1,    -1,
  1551.     -1,    -1,    -1,    63,    37,    38,    -1,    40,    41,    -1,
  1552.     70,    71,    72,    -1,    -1,    75,    -1,     3,     4,     5,
  1553.      6,     7,    55,    83,    -1,    -1,    12,    -1,    -1,    89,
  1554.     63,    91,    -1,    -1,    -1,    -1,    -1,    70,    71,    72,
  1555.     26,    -1,    75,    29,     3,     4,     5,     6,     7,    -1,
  1556.     83,    37,    38,    12,    40,    41,    89,    -1,    91,    -1,
  1557.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    26,    -1,    55,
  1558.     29,    -1,    -1,    -1,    -1,    -1,    -1,    63,    37,    38,
  1559.     -1,    40,    41,    -1,    70,    71,    72,    -1,    -1,    75,
  1560.     76,     3,     4,     5,     6,     7,    55,    83,    -1,    -1,
  1561.     12,     3,    -1,    -1,    63,    91,    -1,    -1,    10,    -1,
  1562.     -1,    -1,    -1,    -1,    26,    -1,    75,    29,    -1,    -1,
  1563.     -1,    -1,    -1,    -1,    83,    37,    38,    -1,    40,    41,
  1564.     -1,    -1,    91,    -1,    -1,    37,    -1,    -1,    40,    41,
  1565.     -1,    -1,    -1,    55,    -1,    -1,    -1,    -1,    -1,    -1,
  1566.     -1,    63,    -1,    55,     3,     4,    -1,    -1,    -1,    -1,
  1567.     -1,    63,    -1,    75,     3,     4,    -1,    -1,    70,    71,
  1568.     72,    83,    -1,    75,    76,    -1,    -1,    -1,    -1,    91,
  1569.     -1,    83,    84,    -1,    -1,    -1,    88,    -1,    37,    91,
  1570.     -1,    40,    41,    -1,    43,    -1,    -1,    -1,    37,    -1,
  1571.     49,    40,    41,    -1,    43,    -1,    55,    -1,    -1,    -1,
  1572.     49,     3,     4,    -1,    63,     7,    55,    -1,    -1,    -1,
  1573.     -1,    70,    71,    72,    63,    -1,    75,    -1,    -1,    -1,
  1574.     -1,    70,    71,    72,    83,    -1,    75,    -1,     3,     4,
  1575.     -1,    -1,    91,    -1,    83,    37,    -1,    -1,    40,    41,
  1576.     -1,    -1,    91,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  1577.     -1,    -1,    -1,    55,    -1,    -1,    -1,    -1,    -1,    -1,
  1578.     -1,    63,    37,    -1,    -1,    40,    41,    -1,    70,    71,
  1579.     72,    -1,    -1,    75,    76,     3,     4,    -1,    -1,    -1,
  1580.     55,    83,    -1,    -1,    -1,    -1,    -1,    -1,    63,    91,
  1581.     -1,    -1,    -1,     1,    -1,    70,    71,    72,    -1,    -1,
  1582.     75,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    83,    37,
  1583.     -1,    -1,    40,    41,    89,    23,    91,    25,    -1,    -1,
  1584.     28,    -1,     3,     4,    -1,    -1,    -1,    55,     3,    -1,
  1585.     -1,    -1,    40,    -1,    -1,    63,    44,    45,    -1,    47,
  1586.     -1,    49,    70,    71,    72,    -1,    -1,    75,    -1,    -1,
  1587.     -1,    -1,    -1,    -1,    -1,    83,    37,    -1,    -1,    40,
  1588.     41,    89,    37,    91,    -1,    40,    41,    75,    76,    -1,
  1589.     78,    -1,    -1,    -1,    55,    -1,    -1,    -1,    -1,    -1,
  1590.     55,    89,    63,     3,     4,    -1,     6,     7,    63,    70,
  1591.     71,    72,    12,    -1,    75,    70,    71,    72,    -1,    -1,
  1592.     75,    76,    83,    -1,    -1,    -1,    26,    -1,    83,    29,
  1593.     91,     4,     5,     6,     7,    -1,    91,    -1,    38,    12,
  1594.     40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  1595.     -1,    -1,    -1,    26,    -1,    55,    29,    -1,    -1,    -1,
  1596.     -1,    -1,    -1,    63,    -1,    38,    -1,    -1,    -1,    -1,
  1597.     70,    71,    72,    -1,    -1,    75,    76,    -1,    -1,    -1,
  1598.     -1,    -1,    55,    83,    -1,    -1,    -1,    -1,    -1,    -1,
  1599.     63,    -1,    -1,    -1,    -1,    -1,    -1,    70,    71,    72,
  1600.     -1,    -1,    75,    46,    47,    48,    -1,    -1,    51,    52,
  1601.     53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
  1602.     63,    64,    65,    45,    46,    47,    48,    -1,    -1,    51,
  1603.     52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
  1604.     62,    63,    64,    65,    -1,    -1,    89,    90,    46,    47,
  1605.     48,    -1,    -1,    51,    52,    53,    54,    55,    56,    57,
  1606.     58,    59,    60,    61,    62,    63,    64,    65,    48,    -1,
  1607.     -1,    51,    52,    53,    54,    55,    56,    57,    58,    59,
  1608.     60,    61,    62,    63,    64,    65,    52,    53,    54,    55,
  1609.     56,    57,    58,    59,    60,    61,    62,    63,    64,    65
  1610. };
  1611. #define YYPURE 1
  1612.  
  1613. #line 2 "bison.simple"
  1614.  
  1615. /* Skeleton output parser for bison,
  1616.    copyright (C) 1984 Bob Corbett and Richard Stallman
  1617.  
  1618.                NO WARRANTY
  1619.  
  1620.   BECAUSE THIS PROGRAM IS LICENSED FREE OF CHARGE, WE PROVIDE ABSOLUTELY
  1621. NO WARRANTY, TO THE EXTENT PERMITTED BY APPLICABLE STATE LAW.  EXCEPT
  1622. WHEN OTHERWISE STATED IN WRITING, FREE SOFTWARE FOUNDATION, INC,
  1623. RICHARD M. STALLMAN AND/OR OTHER PARTIES PROVIDE THIS PROGRAM "AS IS"
  1624. WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
  1625. BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
  1626. FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY
  1627. AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE PROGRAM PROVE
  1628. DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR
  1629. CORRECTION.
  1630.  
  1631.  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW WILL RICHARD M.
  1632. STALLMAN, THE FREE SOFTWARE FOUNDATION, INC., AND/OR ANY OTHER PARTY
  1633. WHO MAY MODIFY AND REDISTRIBUTE THIS PROGRAM AS PERMITTED BELOW, BE
  1634. LIABLE TO YOU FOR DAMAGES, INCLUDING ANY LOST PROFITS, LOST MONIES, OR
  1635. OTHER SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
  1636. USE OR INABILITY TO USE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR
  1637. DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY THIRD PARTIES OR
  1638. A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS) THIS
  1639. PROGRAM, EVEN IF YOU HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH
  1640. DAMAGES, OR FOR ANY CLAIM BY ANY OTHER PARTY.
  1641.  
  1642.         GENERAL PUBLIC LICENSE TO COPY
  1643.  
  1644.   1. You may copy and distribute verbatim copies of this source file
  1645. as you receive it, in any medium, provided that you conspicuously and
  1646. appropriately publish on each copy a valid copyright notice "Copyright
  1647. (C) 1985 Free Software Foundation, Inc."; and include following the
  1648. copyright notice a verbatim copy of the above disclaimer of warranty
  1649. and of this License.  You may charge a distribution fee for the
  1650. physical act of transferring a copy.
  1651.  
  1652.   2. You may modify your copy or copies of this source file or
  1653. any portion of it, and copy and distribute such modifications under
  1654. the terms of Paragraph 1 above, provided that you also do the following:
  1655.  
  1656.     a) cause the modified files to carry prominent notices stating
  1657.     that you changed the files and the date of any change; and
  1658.  
  1659.     b) cause the whole of any work that you distribute or publish,
  1660.     that in whole or in part contains or is a derivative of this
  1661.     program or any part thereof, to be licensed at no charge to all
  1662.     third parties on terms identical to those contained in this
  1663.     License Agreement (except that you may choose to grant more extensive
  1664.     warranty protection to some or all third parties, at your option).
  1665.  
  1666.     c) You may charge a distribution fee for the physical act of
  1667.     transferring a copy, and you may at your option offer warranty
  1668.     protection in exchange for a fee.
  1669.  
  1670. Mere aggregation of another unrelated program with this program (or its
  1671. derivative) on a volume of a storage or distribution medium does not bring
  1672. the other program under the scope of these terms.
  1673.  
  1674.   3. You may copy and distribute this program (or a portion or derivative
  1675. of it, under Paragraph 2) in object code or executable form under the terms
  1676. of Paragraphs 1 and 2 above provided that you also do one of the following:
  1677.  
  1678.     a) accompany it with the complete corresponding machine-readable
  1679.     source code, which must be distributed under the terms of
  1680.     Paragraphs 1 and 2 above; or,
  1681.  
  1682.     b) accompany it with a written offer, valid for at least three
  1683.     years, to give any third party free (except for a nominal
  1684.     shipping charge) a complete machine-readable copy of the
  1685.     corresponding source code, to be distributed under the terms of
  1686.     Paragraphs 1 and 2 above; or,
  1687.  
  1688.     c) accompany it with the information you received as to where the
  1689.     corresponding source code may be obtained.  (This alternative is
  1690.     allowed only for noncommercial distribution and only if you
  1691.     received the program in object code or executable form alone.)
  1692.  
  1693. For an executable file, complete source code means all the source code for
  1694. all modules it contains; but, as a special exception, it need not include
  1695. source code for modules which are standard libraries that accompany the
  1696. operating system on which the executable file runs.
  1697.  
  1698.   4. You may not copy, sublicense, distribute or transfer this program
  1699. except as expressly provided under this License Agreement.  Any attempt
  1700. otherwise to copy, sublicense, distribute or transfer this program is void and
  1701. your rights to use the program under this License agreement shall be
  1702. automatically terminated.  However, parties who have received computer
  1703. software programs from you with this License Agreement will not have
  1704. their licenses terminated so long as such parties remain in full compliance.
  1705.  
  1706.   5. If you wish to incorporate parts of this program into other free
  1707. programs whose distribution conditions are different, write to the Free
  1708. Software Foundation at 675 Mass Ave, Cambridge, MA 02139.  We have not yet
  1709. worked out a simple rule that can be stated here, but we will often permit
  1710. this.  We will be guided by the two goals of preserving the free status of
  1711. all derivatives of our free software and of promoting the sharing and reuse of
  1712. software.
  1713.  
  1714.  
  1715. In other words, you are welcome to use, share and improve this program.
  1716. You are forbidden to forbid anyone else to use, share and improve
  1717. what you give them.   Help stamp out software-hoarding!  */
  1718.  
  1719. /* This is the parser code that is written into each bison parser
  1720.   when the %semantic_parser declaration is not specified in the grammar.
  1721.   It was written by Richard Stallman by simplifying the hairy parser
  1722.   used when %semantic_parser is specified.  */
  1723.  
  1724. /* Note: there must be only one dollar sign in this file.
  1725.    It is replaced by the list of actions, each action
  1726.    as one case of the switch.  */
  1727.  
  1728. #define yyerrok        (yyerrstatus = 0)
  1729. #define yyclearin    (yychar = YYEMPTY)
  1730. #define YYEMPTY        -2
  1731. #define YYEOF        0
  1732. #define YYFAIL        goto yyerrlab;
  1733.  
  1734. #define YYTERROR    1
  1735.  
  1736. #ifndef YYIMPURE
  1737. #define YYLEX        yylex()
  1738. #endif
  1739.  
  1740. #ifndef YYPURE
  1741. #define YYLEX        yylex(&yylval, &yylloc)
  1742. #endif
  1743.  
  1744. /* If nonreentrant, generate the variables here */
  1745.  
  1746. #ifndef YYIMPURE
  1747.  
  1748. int    yychar;            /*  the lookahead symbol        */
  1749. YYSTYPE    yylval;            /*  the semantic value of the        */
  1750.                 /*  lookahead symbol            */
  1751.  
  1752. YYLTYPE yylloc;            /*  location data for the lookahead    */
  1753.                 /*  symbol                */
  1754.  
  1755. int yynerr;            /*  number of parse errors so far       */
  1756.  
  1757. #ifdef YYDEBUG
  1758. int yydebug = 0;        /*  nonzero means print parse trace    */
  1759. #endif
  1760.  
  1761. #endif  /* YYIMPURE */
  1762.  
  1763.  
  1764. /*  YYMAXDEPTH indicates the initial size of the parser's stacks    */
  1765.  
  1766. #ifndef    YYMAXDEPTH
  1767. #define YYMAXDEPTH 200
  1768. #endif
  1769.  
  1770. /*  YYMAXLIMIT is the maximum size the stacks can grow to
  1771.     (effective only if the built-in stack extension method is used).  */
  1772.  
  1773. #ifndef YYMAXLIMIT
  1774. #define YYMAXLIMIT 10000
  1775. #endif
  1776.  
  1777.  
  1778. #line 167 "bison.simple"
  1779. int
  1780. yyparse()
  1781. {
  1782.   register int yystate;
  1783.   register int yyn;
  1784.   register short *yyssp;
  1785.   register YYSTYPE *yyvsp;
  1786.   YYLTYPE *yylsp;
  1787.   int yyerrstatus;    /*  number of tokens to shift before error messages enabled */
  1788.   int yychar1;        /*  lookahead token as an internal (translated) token number */
  1789.  
  1790.   short    yyssa[YYMAXDEPTH];    /*  the state stack            */
  1791.   YYSTYPE yyvsa[YYMAXDEPTH];    /*  the semantic value stack        */
  1792.   YYLTYPE yylsa[YYMAXDEPTH];    /*  the location stack            */
  1793.  
  1794.   short *yyss = yyssa;        /*  refer to the stacks thru separate pointers */
  1795.   YYSTYPE *yyvs = yyvsa;    /*  to allow yyoverflow to reallocate them elsewhere */
  1796.   YYLTYPE *yyls = yylsa;
  1797.  
  1798.   int yymaxdepth = YYMAXDEPTH;
  1799.  
  1800. #ifndef YYPURE
  1801.   int yychar;
  1802.   YYSTYPE yylval;
  1803.   YYLTYPE yylloc;
  1804. #endif
  1805.  
  1806. #ifdef YYDEBUG
  1807.   extern int yydebug;
  1808. #endif
  1809.  
  1810.  
  1811.   YYSTYPE yyval;        /*  the variable used to return        */
  1812.                 /*  semantic values from the action    */
  1813.                 /*  routines                */
  1814.  
  1815.   int yylen;
  1816.  
  1817. #ifdef YYDEBUG
  1818.   if (yydebug)
  1819.     fprintf(stderr, "Starting parse\n");
  1820. #endif
  1821.  
  1822.   yystate = 0;
  1823.   yyerrstatus = 0;
  1824.   yynerr = 0;
  1825.   yychar = YYEMPTY;        /* Cause a token to be read.  */
  1826.  
  1827.   /* Initialize stack pointers.
  1828.      Waste one element of value and location stack
  1829.      so that they stay on the same level as the state stack.  */
  1830.  
  1831.   yyssp = yyss - 1;
  1832.   yyvsp = yyvs;
  1833.   yylsp = yyls;
  1834.  
  1835. /* Push a new state, which is found in  yystate  .  */
  1836. /* In all cases, when you get here, the value and location stacks
  1837.    have just been pushed. so pushing a state here evens the stacks.  */
  1838. yynewstate:
  1839.  
  1840.   *++yyssp = yystate;
  1841.  
  1842.   if (yyssp >= yyss + yymaxdepth - 1)
  1843.     {
  1844.       /* Give user a chance to reallocate the stack */
  1845.       /* Use copies of these so that the &'s don't force the real ones into memory. */
  1846.       YYSTYPE *yyvs1 = yyvs;
  1847.       YYLTYPE *yyls1 = yyls;
  1848.       short *yyss1 = yyss;
  1849.  
  1850.       /* Get the current used size of the three stacks, in elements.  */
  1851.       int size = yyssp - yyss + 1;
  1852.  
  1853. #ifdef yyoverflow
  1854.       /* Each stack pointer address is followed by the size of
  1855.      the data in use in that stack, in bytes.  */
  1856.       yyoverflow("parser stack overflow",
  1857.          &yyss1, size * sizeof (*yyssp),
  1858.          &yyvs1, size * sizeof (*yyvsp),
  1859.          &yyls1, size * sizeof (*yylsp),
  1860.          &yymaxdepth);
  1861.  
  1862.       yyss = yyss1; yyvs = yyvs1; yyls = yyls1;
  1863. #else /* no yyoverflow */
  1864.       /* Extend the stack our own way.  */
  1865.       if (yymaxdepth >= YYMAXLIMIT)
  1866.     yyerror("parser stack overflow");
  1867.       yymaxdepth *= 2;
  1868.       if (yymaxdepth > YYMAXLIMIT)
  1869.     yymaxdepth = YYMAXLIMIT;
  1870.       yyss = (short *) alloca (yymaxdepth * sizeof (*yyssp));
  1871.       bcopy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp));
  1872.       yyvs = (YYSTYPE *) alloca (yymaxdepth * sizeof (*yyvsp));
  1873.       bcopy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp));
  1874. #ifdef YYLSP_NEEDED
  1875.       yyls = (YYLTYPE *) alloca (yymaxdepth * sizeof (*yylsp));
  1876.       bcopy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp));
  1877. #endif
  1878. #endif /* no yyoverflow */
  1879.  
  1880.       yyssp = yyss + size - 1;
  1881.       yyvsp = yyvs + size - 1;
  1882. #ifdef YYLSP_NEEDED
  1883.       yylsp = yyls + size - 1;
  1884. #endif
  1885.  
  1886. #ifdef YYDEBUG
  1887.       if (yydebug)
  1888.     fprintf(stderr, "Stack size increased to %d\n", yymaxdepth);
  1889. #endif
  1890.  
  1891.       if (yyssp >= yyss + yymaxdepth - 1)
  1892.     YYABORT;
  1893.     }
  1894.  
  1895. #ifdef YYDEBUG
  1896.   if (yydebug)
  1897.     fprintf(stderr, "Entering state %d\n", yystate);
  1898. #endif
  1899.  
  1900. /* Do appropriate processing given the current state.  */
  1901. /* Read a lookahead token if we need one and don't already have one.  */
  1902. yyresume:
  1903.  
  1904.   /* First try to decide what to do without reference to lookahead token.  */
  1905.  
  1906.   yyn = yypact[yystate];
  1907.   if (yyn == YYFLAG)
  1908.     goto yydefault;
  1909.  
  1910.   /* Not known => get a lookahead token if don't already have one.  */
  1911.  
  1912.   /* yychar is either YYEMPTY or YYEOF
  1913.      or a valid token in external form.  */
  1914.  
  1915.   if (yychar == YYEMPTY)
  1916.     {
  1917. #ifdef YYDEBUG
  1918.       if (yydebug)
  1919.     fprintf(stderr, "Reading a token: ");
  1920. #endif
  1921.       yychar = YYLEX;
  1922.     }
  1923.  
  1924.   /* Convert token to internal form (in yychar1) for indexing tables with */
  1925.  
  1926.   if (yychar <= 0)        /* This means end of input. */
  1927.     {
  1928.       yychar1 = 0;
  1929.       yychar = YYEOF;        /* Don't call YYLEX any more */
  1930.  
  1931. #ifdef YYDEBUG
  1932.       if (yydebug)
  1933.     fprintf(stderr, "Now at end of input.\n");
  1934. #endif
  1935.     }
  1936.   else
  1937.     {
  1938.       yychar1 = YYTRANSLATE(yychar);
  1939.  
  1940. #ifdef YYDEBUG
  1941.       if (yydebug)
  1942.     fprintf(stderr, "Next token is %d (%s)\n", yychar, yytname[yychar1]);
  1943. #endif
  1944.     }
  1945.  
  1946.   yyn += yychar1;
  1947.   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
  1948.     goto yydefault;
  1949.  
  1950.   yyn = yytable[yyn];
  1951.  
  1952.   /* yyn is what to do for this token type in this state.
  1953.      Negative => reduce, -yyn is rule number.
  1954.      Positive => shift, yyn is new state.
  1955.        New state is final state => don't bother to shift,
  1956.        just return success.
  1957.      0, or most negative number => error.  */
  1958.  
  1959.   if (yyn < 0)
  1960.     {
  1961.       if (yyn == YYFLAG)
  1962.     goto yyerrlab;
  1963.       yyn = -yyn;
  1964.       goto yyreduce;
  1965.     }
  1966.   else if (yyn == 0)
  1967.     goto yyerrlab;
  1968.  
  1969.   if (yyn == YYFINAL)
  1970.     YYACCEPT;
  1971.  
  1972.   /* Shift the lookahead token.  */
  1973.  
  1974. #ifdef YYDEBUG
  1975.   if (yydebug)
  1976.     fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
  1977. #endif
  1978.  
  1979.   /* Discard the token being shifted unless it is eof.  */
  1980.   if (yychar != YYEOF)
  1981.     yychar = YYEMPTY;
  1982.  
  1983.   *++yyvsp = yylval;
  1984. #ifdef YYLSP_NEEDED
  1985.   *++yylsp = yylloc;
  1986. #endif
  1987.  
  1988.   /* count tokens shifted since error; after three, turn off error status.  */
  1989.   if (yyerrstatus) yyerrstatus--;
  1990.  
  1991.   yystate = yyn;
  1992.   goto yynewstate;
  1993.  
  1994. /* Do the default action for the current state.  */
  1995. yydefault:
  1996.  
  1997.   yyn = yydefact[yystate];
  1998.   if (yyn == 0)
  1999.     goto yyerrlab;
  2000.  
  2001. /* Do a reduction.  yyn is the number of a rule to reduce with.  */
  2002. yyreduce:
  2003.   yylen = yyr2[yyn];
  2004.   yyval = yyvsp[1-yylen]; /* implement default value of the action */
  2005.  
  2006. #ifdef YYDEBUG
  2007.   if (yydebug)
  2008.     {
  2009.       if (yylen == 1)
  2010.     fprintf (stderr, "Reducing 1 value via line %d, ",
  2011.          yyrline[yyn]);
  2012.       else
  2013.     fprintf (stderr, "Reducing %d values via line %d, ",
  2014.          yylen, yyrline[yyn]);
  2015.     }
  2016. #endif
  2017.  
  2018.  
  2019.   switch (yyn) {
  2020.  
  2021. case 2:
  2022. #line 224 "cplus-parse.y"
  2023. { finish_file (); ;
  2024.     break;}
  2025. case 3:
  2026. #line 232 "cplus-parse.y"
  2027. {yyval.ttype = NULL_TREE; ;
  2028.     break;}
  2029. case 5:
  2030. #line 233 "cplus-parse.y"
  2031. {yyval.ttype = NULL_TREE; ;
  2032.     break;}
  2033. case 7:
  2034. #line 238 "cplus-parse.y"
  2035. { if (pending_inlines) do_pending_inlines (); ;
  2036.     break;}
  2037. case 8:
  2038. #line 240 "cplus-parse.y"
  2039. { if (pending_inlines) do_pending_inlines (); ;
  2040.     break;}
  2041. case 10:
  2042. #line 243 "cplus-parse.y"
  2043. { if (pedantic)
  2044.             warning ("ANSI C forbids use of `asm' keyword");
  2045.           if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
  2046.           assemble_asm (yyvsp[-2].ttype); ;
  2047.     break;}
  2048. case 11:
  2049. #line 248 "cplus-parse.y"
  2050. { pop_lang_context (); ;
  2051.     break;}
  2052. case 12:
  2053. #line 250 "cplus-parse.y"
  2054. { pop_lang_context (); ;
  2055.     break;}
  2056. case 13:
  2057. #line 252 "cplus-parse.y"
  2058. { if (pending_inlines) do_pending_inlines ();
  2059.           pop_lang_context (); ;
  2060.     break;}
  2061. case 14:
  2062. #line 255 "cplus-parse.y"
  2063. { if (pending_inlines) do_pending_inlines ();
  2064.           pop_lang_context (); ;
  2065.     break;}
  2066. case 15:
  2067. #line 261 "cplus-parse.y"
  2068. { push_lang_context (yyvsp[0].ttype); ;
  2069.     break;}
  2070. case 17:
  2071. #line 268 "cplus-parse.y"
  2072. { declare_overloaded (yyvsp[0].ttype); ;
  2073.     break;}
  2074. case 18:
  2075. #line 270 "cplus-parse.y"
  2076. { declare_overloaded (yyvsp[0].ttype); ;
  2077.     break;}
  2078. case 19:
  2079. #line 274 "cplus-parse.y"
  2080. { yyval.ttype = NULL_TREE; ;
  2081.     break;}
  2082. case 20:
  2083. #line 279 "cplus-parse.y"
  2084. { if (pedantic)
  2085.             error ("ANSI C forbids data definition lacking type or storage class");
  2086.             else if (! flag_traditional)
  2087.               warning ("data definition lacks type or storage class"); ;
  2088.     break;}
  2089. case 21:
  2090. #line 284 "cplus-parse.y"
  2091. {;
  2092.     break;}
  2093. case 22:
  2094. #line 287 "cplus-parse.y"
  2095. { tree d;
  2096.           d = start_decl (yyvsp[-1].ttype, yyvsp[-2].ttype, 0, NULL_TREE);
  2097.           finish_decl (d, NULL_TREE, NULL_TREE);
  2098.         ;
  2099.     break;}
  2100. case 23:
  2101. #line 292 "cplus-parse.y"
  2102. {
  2103.           end_exception_decls ();
  2104.           note_got_semicolon (yyvsp[-2].ttype);
  2105.         ;
  2106.     break;}
  2107. case 24:
  2108. #line 298 "cplus-parse.y"
  2109. { tree d;
  2110.           d = start_decl (yyvsp[-1].ttype, yyvsp[-2].ttype, 0, NULL_TREE);
  2111.           finish_decl (d, NULL_TREE, NULL_TREE);
  2112.           end_exception_decls ();
  2113.           note_got_semicolon (yyvsp[-2].ttype);
  2114.         ;
  2115.     break;}
  2116. case 25:
  2117. #line 305 "cplus-parse.y"
  2118. { error ("empty declaration"); ;
  2119.     break;}
  2120. case 26:
  2121. #line 307 "cplus-parse.y"
  2122. {
  2123.         shadow_tag (yyvsp[-1].ttype);
  2124.         note_got_semicolon (yyvsp[-1].ttype);
  2125.       ;
  2126.     break;}
  2127. case 30:
  2128. #line 318 "cplus-parse.y"
  2129. {
  2130.           finish_function (lineno, 1);
  2131.           /* finish_function performs these three statements:
  2132.  
  2133.              expand_end_bindings (getdecls (), 1, 0);
  2134.              poplevel (1, 1, 0);
  2135.  
  2136.              expand_end_bindings (0, 0, 0);
  2137.              poplevel (0, 0, 1);
  2138.              */
  2139.         ;
  2140.     break;}
  2141. case 31:
  2142. #line 330 "cplus-parse.y"
  2143. {
  2144.           finish_function (lineno, 1);
  2145.           /* finish_function performs these three statements:
  2146.  
  2147.              expand_end_bindings (getdecls (), 1, 0);
  2148.              poplevel (1, 1, 0);
  2149.  
  2150.              expand_end_bindings (0, 0, 0);
  2151.              poplevel (0, 0, 1);
  2152.              */
  2153.         ;
  2154.     break;}
  2155. case 32:
  2156. #line 342 "cplus-parse.y"
  2157. { finish_function (lineno, 0); ;
  2158.     break;}
  2159. case 33:
  2160. #line 344 "cplus-parse.y"
  2161. { finish_function (lineno, 0); ;
  2162.     break;}
  2163. case 34:
  2164. #line 346 "cplus-parse.y"
  2165. { finish_function (lineno, 0); ;
  2166.     break;}
  2167. case 35:
  2168. #line 348 "cplus-parse.y"
  2169. {;
  2170.     break;}
  2171. case 36:
  2172. #line 350 "cplus-parse.y"
  2173. {;
  2174.     break;}
  2175. case 37:
  2176. #line 352 "cplus-parse.y"
  2177. {;
  2178.     break;}
  2179. case 38:
  2180. #line 357 "cplus-parse.y"
  2181. { if (! start_function (yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype, 0))
  2182.             YYERROR;
  2183.           reinit_parse_for_function (); ;
  2184.     break;}
  2185. case 39:
  2186. #line 361 "cplus-parse.y"
  2187. { if (! start_function (yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype, 0))
  2188.             YYERROR;
  2189.           reinit_parse_for_function (); ;
  2190.     break;}
  2191. case 40:
  2192. #line 365 "cplus-parse.y"
  2193. { if (! start_function (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype, 0))
  2194.             YYERROR;
  2195.           reinit_parse_for_function (); ;
  2196.     break;}
  2197. case 41:
  2198. #line 369 "cplus-parse.y"
  2199. { if (! start_function (NULL_TREE, build_parse_node (CALL_EXPR, yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype), yyvsp[0].ttype, 0))
  2200.             YYERROR;
  2201.           reinit_parse_for_function (); ;
  2202.     break;}
  2203. case 42:
  2204. #line 373 "cplus-parse.y"
  2205. { if (! start_function (NULL_TREE, build_parse_node (CALL_EXPR, yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype), yyvsp[0].ttype, 0))
  2206.             YYERROR;
  2207.           reinit_parse_for_function (); ;
  2208.     break;}
  2209. case 43:
  2210. #line 377 "cplus-parse.y"
  2211. { start_function (NULL_TREE, yyvsp[0].ttype, NULL_TREE, 1);
  2212.           reinit_parse_for_function (); ;
  2213.     break;}
  2214. case 44:
  2215. #line 384 "cplus-parse.y"
  2216. {
  2217.           tree decl = build_parse_node (CALL_EXPR, TREE_VALUE (yyvsp[-5].ttype), yyvsp[-3].ttype, yyvsp[-1].ttype);
  2218.           yyval.ttype = start_method (TREE_CHAIN (yyvsp[-5].ttype), decl, yyvsp[0].ttype);
  2219.           if (! yyval.ttype)
  2220.             YYERROR;
  2221.           if (yychar == YYEMPTY)
  2222.             yychar = YYLEX;
  2223.           reinit_parse_for_method (yychar, yyval.ttype); ;
  2224.     break;}
  2225. case 45:
  2226. #line 393 "cplus-parse.y"
  2227. {
  2228.           tree decl = build_parse_node (CALL_EXPR, TREE_VALUE (yyvsp[-3].ttype), empty_parms (), yyvsp[-1].ttype);
  2229.           yyval.ttype = start_method (TREE_CHAIN (yyvsp[-3].ttype), decl, yyvsp[0].ttype);
  2230.           if (! yyval.ttype)
  2231.             YYERROR;
  2232.           if (yychar == YYEMPTY)
  2233.             yychar = YYLEX;
  2234.           reinit_parse_for_method (yychar, yyval.ttype); ;
  2235.     break;}
  2236. case 46:
  2237. #line 402 "cplus-parse.y"
  2238. { yyval.ttype = start_method (yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
  2239.           if (! yyval.ttype)
  2240.             YYERROR;
  2241.           if (yychar == YYEMPTY)
  2242.             yychar = YYLEX;
  2243.           reinit_parse_for_method (yychar, yyval.ttype); ;
  2244.     break;}
  2245. case 47:
  2246. #line 409 "cplus-parse.y"
  2247. {
  2248.           tree decl = build_parse_node (CALL_EXPR, TREE_VALUE (yyvsp[-5].ttype), yyvsp[-3].ttype, yyvsp[-1].ttype);
  2249.           yyval.ttype = start_method (TREE_CHAIN (yyvsp[-5].ttype), decl, yyvsp[0].ttype);
  2250.           if (! yyval.ttype)
  2251.             YYERROR;
  2252.           if (yychar == YYEMPTY)
  2253.             yychar = YYLEX;
  2254.           reinit_parse_for_method (yychar, yyval.ttype); ;
  2255.     break;}
  2256. case 48:
  2257. #line 418 "cplus-parse.y"
  2258. {
  2259.           tree decl = build_parse_node (CALL_EXPR, TREE_VALUE (yyvsp[-3].ttype), empty_parms (), yyvsp[-1].ttype);
  2260.           yyval.ttype = start_method (TREE_CHAIN (yyvsp[-3].ttype), decl, yyvsp[0].ttype);
  2261.           if (! yyval.ttype)
  2262.             YYERROR;
  2263.           if (yychar == YYEMPTY)
  2264.             yychar = YYLEX;
  2265.           reinit_parse_for_method (yychar, yyval.ttype); ;
  2266.     break;}
  2267. case 49:
  2268. #line 427 "cplus-parse.y"
  2269. { yyval.ttype = start_method (yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
  2270.           if (! yyval.ttype)
  2271.             YYERROR;
  2272.           if (yychar == YYEMPTY)
  2273.             yychar = YYLEX;
  2274.           reinit_parse_for_method (yychar, yyval.ttype); ;
  2275.     break;}
  2276. case 50:
  2277. #line 434 "cplus-parse.y"
  2278. { yyval.ttype = start_method (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype);
  2279.           if (! yyval.ttype)
  2280.             YYERROR;
  2281.           if (yychar == YYEMPTY)
  2282.             yychar = YYLEX;
  2283.           reinit_parse_for_method (yychar, yyval.ttype); ;
  2284.     break;}
  2285. case 51:
  2286. #line 443 "cplus-parse.y"
  2287. {
  2288.           if (! current_function_parms_stored)
  2289.             store_parm_decls ();
  2290.           yyval.ttype = yyvsp[0].ttype;
  2291.         ;
  2292.     break;}
  2293. case 52:
  2294. #line 451 "cplus-parse.y"
  2295. {
  2296.           extern tree value_identifier;
  2297.           tree result;
  2298.  
  2299.           result = DECL_RESULT (current_function_decl);
  2300.           if (DECL_NAME (result) == value_identifier)
  2301.             DECL_NAME (result) = yyvsp[-1].ttype;
  2302.           else
  2303.             error ("return identifier `%s' already in place",
  2304.                IDENTIFIER_POINTER (DECL_NAME (result)));
  2305.           store_return_init (yyvsp[0].ttype);
  2306.         ;
  2307.     break;}
  2308. case 53:
  2309. #line 464 "cplus-parse.y"
  2310. {
  2311.           extern tree value_identifier;
  2312.           tree result;
  2313.  
  2314.           result = DECL_RESULT (current_function_decl);
  2315.           if (DECL_NAME (result) == value_identifier)
  2316.             DECL_NAME (result) = yyvsp[-3].ttype;
  2317.           else
  2318.             error ("return identifier `%s' already in place",
  2319.                IDENTIFIER_POINTER (DECL_NAME (result)));
  2320.           store_return_init (yyvsp[-1].ttype);
  2321.         ;
  2322.     break;}
  2323. case 54:
  2324. #line 477 "cplus-parse.y"
  2325. {
  2326.           extern tree value_identifier;
  2327.           tree result;
  2328.  
  2329.           result = DECL_RESULT (current_function_decl);
  2330.           if (DECL_NAME (result) == value_identifier)
  2331.             DECL_NAME (result) = yyvsp[-1].ttype;
  2332.           else
  2333.             error ("return identifier `%s' already in place",
  2334.                IDENTIFIER_POINTER (DECL_NAME (result)));
  2335.           store_return_init (NULL_TREE);
  2336.         ;
  2337.     break;}
  2338. case 55:
  2339. #line 493 "cplus-parse.y"
  2340. { if (yyvsp[0].itype == 0)
  2341.             error ("no base initializers given following ':'");
  2342.           setup_vtbl_ptr (); ;
  2343.     break;}
  2344. case 56:
  2345. #line 500 "cplus-parse.y"
  2346. {
  2347.           int preserve = (current_class_type
  2348.                   && TYPE_USES_VIRTUAL_BASECLASSES (current_class_type));
  2349.           preserve = 0;    /* "in charge" arg means we no longer
  2350.                    need this hack.  */
  2351.           if (! current_function_parms_stored)
  2352.             store_parm_decls ();
  2353.           else if (preserve)
  2354.             preserve_data ();
  2355.  
  2356.           /* Flag that we are processing base and member initializers.  */
  2357.           current_vtable_decl = error_mark_node;
  2358.  
  2359.           if (DECL_CONSTRUCTOR_P (current_function_decl))
  2360.             {
  2361.               /* Make a contour for the initializer list.  */
  2362.               pushlevel (0);
  2363.               clear_last_expr ();
  2364.               expand_start_bindings (0);
  2365.             }
  2366.           else if (current_class_type == NULL_TREE)
  2367.             error ("base initializers not allowed for non-member functions");
  2368.           else if (! DECL_CONSTRUCTOR_P (current_function_decl))
  2369.             error ("only constructors take base initializers");
  2370.         ;
  2371.     break;}
  2372. case 57:
  2373. #line 529 "cplus-parse.y"
  2374. { yyval.itype = 0; ;
  2375.     break;}
  2376. case 58:
  2377. #line 531 "cplus-parse.y"
  2378. { yyval.itype = 1; ;
  2379.     break;}
  2380. case 61:
  2381. #line 539 "cplus-parse.y"
  2382. {
  2383.           if (current_class_name && pedantic)
  2384.             warning ("old style base class initialization; use `%s (...)'",
  2385.                  IDENTIFIER_POINTER (current_class_name));
  2386.           expand_member_init (C_C_D, NULL_TREE, yyvsp[-1].ttype);
  2387.         ;
  2388.     break;}
  2389. case 62:
  2390. #line 546 "cplus-parse.y"
  2391. {
  2392.           if (current_class_name && pedantic)
  2393.             warning ("old style base class initialization; use `%s (...)'",
  2394.                  IDENTIFIER_POINTER (current_class_name));
  2395.           expand_member_init (C_C_D, NULL_TREE, void_type_node);
  2396.         ;
  2397.     break;}
  2398. case 63:
  2399. #line 553 "cplus-parse.y"
  2400. {
  2401.           expand_member_init (C_C_D, yyvsp[-3].ttype, yyvsp[-1].ttype);
  2402.         ;
  2403.     break;}
  2404. case 64:
  2405. #line 557 "cplus-parse.y"
  2406. { expand_member_init (C_C_D, yyvsp[-1].ttype, void_type_node); ;
  2407.     break;}
  2408. case 65:
  2409. #line 559 "cplus-parse.y"
  2410. {
  2411.           tree base, basetype;
  2412.           tree scopes = yyvsp[-4].ttype;
  2413.  
  2414.           if (TREE_CODE (scopes) == SCOPE_REF)
  2415.             /* just a pain to do this right now.  */
  2416.             abort ();
  2417.  
  2418.           if (current_class_type == NULL_TREE
  2419.               || ! is_aggr_typedef (scopes, 1))
  2420.             break;
  2421.           basetype = get_base_type (TREE_TYPE (TREE_TYPE (scopes)),
  2422.                         current_class_type, 1);
  2423.           if (basetype == error_mark_node)
  2424.             break;
  2425.           if (basetype == 0)
  2426.             {
  2427.               error_not_base_type (TREE_TYPE (TREE_TYPE (scopes)), current_class_type);
  2428.               break;
  2429.             }
  2430.  
  2431.           base = convert_pointer_to (basetype, current_class_decl);
  2432.           expand_member_init (build_indirect_ref (base), yyvsp[-3].ttype, yyvsp[-1].ttype);
  2433.         ;
  2434.     break;}
  2435. case 66:
  2436. #line 584 "cplus-parse.y"
  2437. {
  2438.           tree basetype, base;
  2439.           tree scopes = yyvsp[-2].ttype;
  2440.           if (TREE_CODE (scopes) == SCOPE_REF)
  2441.             /* just a pain to do this right now.  */
  2442.             abort ();
  2443.  
  2444.           if (current_class_type == NULL_TREE
  2445.               || ! is_aggr_typedef (scopes, 1))
  2446.             break;
  2447.           basetype = get_base_type (TREE_TYPE (TREE_TYPE (scopes)),
  2448.                         current_class_type, 1);
  2449.           if (basetype == error_mark_node)
  2450.             break;
  2451.           if (basetype == 0)
  2452.             {
  2453.               error_not_base_type (TREE_TYPE (TREE_TYPE (scopes)), current_class_type);
  2454.               break;
  2455.             }
  2456.  
  2457.           base = convert_pointer_to (basetype, current_class_decl);
  2458.           expand_member_init (build_indirect_ref (base), yyvsp[-1].ttype, void_type_node);
  2459.         ;
  2460.     break;}
  2461. case 71:
  2462. #line 618 "cplus-parse.y"
  2463. { yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype); ;
  2464.     break;}
  2465. case 72:
  2466. #line 620 "cplus-parse.y"
  2467. { yyval.ttype = hack_operator (yyvsp[0].ttype);
  2468.           if (yyval.ttype == error_mark_node)
  2469.             yyval.ttype = get_identifier ("<missing operator>"); ;
  2470.     break;}
  2471. case 73:
  2472. #line 624 "cplus-parse.y"
  2473. { yyval.ttype = hack_wrapper (yyvsp[-1].itype, NULL_TREE, yyvsp[0].ttype); ;
  2474.     break;}
  2475. case 74:
  2476. #line 626 "cplus-parse.y"
  2477. { yyval.ttype = hack_wrapper (yyvsp[-1].itype, NULL_TREE, yyvsp[0].ttype); ;
  2478.     break;}
  2479. case 75:
  2480. #line 628 "cplus-parse.y"
  2481. { yyval.ttype = hack_wrapper (yyvsp[-1].itype, NULL_TREE, yyvsp[0].ttype); ;
  2482.     break;}
  2483. case 76:
  2484. #line 630 "cplus-parse.y"
  2485. { yyval.ttype = hack_wrapper (yyvsp[-2].itype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
  2486.     break;}
  2487. case 77:
  2488. #line 632 "cplus-parse.y"
  2489. { yyval.ttype = hack_wrapper (yyvsp[-2].itype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
  2490.     break;}
  2491. case 78:
  2492. #line 636 "cplus-parse.y"
  2493. { yyval.itype = 0; ;
  2494.     break;}
  2495. case 79:
  2496. #line 638 "cplus-parse.y"
  2497. { yyval.itype = 1; ;
  2498.     break;}
  2499. case 80:
  2500. #line 640 "cplus-parse.y"
  2501. { yyval.itype = 2; ;
  2502.     break;}
  2503. case 81:
  2504. #line 644 "cplus-parse.y"
  2505. { yyval.code = NEGATE_EXPR; ;
  2506.     break;}
  2507. case 82:
  2508. #line 646 "cplus-parse.y"
  2509. { yyval.code = CONVERT_EXPR; ;
  2510.     break;}
  2511. case 83:
  2512. #line 648 "cplus-parse.y"
  2513. { yyval.code = PREINCREMENT_EXPR; ;
  2514.     break;}
  2515. case 84:
  2516. #line 650 "cplus-parse.y"
  2517. { yyval.code = PREDECREMENT_EXPR; ;
  2518.     break;}
  2519. case 85:
  2520. #line 652 "cplus-parse.y"
  2521. { yyval.code = TRUTH_NOT_EXPR; ;
  2522.     break;}
  2523. case 86:
  2524. #line 656 "cplus-parse.y"
  2525. { yyval.ttype = build_compound_expr (yyvsp[0].ttype); ;
  2526.     break;}
  2527. case 87:
  2528. #line 659 "cplus-parse.y"
  2529. {
  2530.           if (TREE_CODE (yyvsp[0].ttype) == CALL_EXPR
  2531.               && TYPE_NEEDS_DESTRUCTOR (TREE_TYPE (yyvsp[0].ttype)))
  2532.             yyval.ttype = cleanup_after_call (yyvsp[0].ttype);
  2533.         ;
  2534.     break;}
  2535. case 88:
  2536. #line 668 "cplus-parse.y"
  2537. { yyval.ttype = NULL_TREE; ;
  2538.     break;}
  2539. case 90:
  2540. #line 674 "cplus-parse.y"
  2541. { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
  2542.     break;}
  2543. case 91:
  2544. #line 676 "cplus-parse.y"
  2545. { chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
  2546.     break;}
  2547. case 92:
  2548. #line 678 "cplus-parse.y"
  2549. { chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, error_mark_node)); ;
  2550.     break;}
  2551. case 93:
  2552. #line 683 "cplus-parse.y"
  2553. {
  2554.           if (TREE_CODE (yyvsp[0].ttype) == TYPE_EXPR)
  2555.             yyval.ttype = build_component_type_expr (C_C_D, yyvsp[0].ttype, NULL_TREE, 1);
  2556.           else
  2557.             yyval.ttype = yyvsp[0].ttype;
  2558.         ;
  2559.     break;}
  2560. case 94:
  2561. #line 690 "cplus-parse.y"
  2562. { yyval.ttype = build_x_indirect_ref (yyvsp[0].ttype, "unary *"); ;
  2563.     break;}
  2564. case 95:
  2565. #line 692 "cplus-parse.y"
  2566. { yyval.ttype = build_x_unary_op (ADDR_EXPR, yyvsp[0].ttype); ;
  2567.     break;}
  2568. case 96:
  2569. #line 694 "cplus-parse.y"
  2570. { yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, yyvsp[0].ttype); ;
  2571.     break;}
  2572. case 97:
  2573. #line 696 "cplus-parse.y"
  2574. { yyval.ttype = build_x_unary_op (yyvsp[-1].code, yyvsp[0].ttype);
  2575.           if (yyvsp[-1].code == NEGATE_EXPR && TREE_CODE (yyvsp[0].ttype) == INTEGER_CST)
  2576.             TREE_NEGATED_INT (yyval.ttype) = 1;
  2577.         ;
  2578.     break;}
  2579. case 98:
  2580. #line 701 "cplus-parse.y"
  2581. { if (TREE_CODE (yyvsp[0].ttype) == COMPONENT_REF
  2582.               && TREE_PACKED (TREE_OPERAND (yyvsp[0].ttype, 1)))
  2583.             error ("sizeof applied to a bit-field");
  2584.           /* ANSI says arrays and functions are converted inside comma.
  2585.              But we can't really convert them in build_compound_expr
  2586.              because that would break commas in lvalues.
  2587.              So do the conversion here if operand was a comma.  */
  2588.           if (TREE_CODE (yyvsp[0].ttype) == COMPOUND_EXPR
  2589.               && (TREE_CODE (TREE_TYPE (yyvsp[0].ttype)) == ARRAY_TYPE
  2590.               || TREE_CODE (TREE_TYPE (yyvsp[0].ttype)) == FUNCTION_TYPE))
  2591.             yyvsp[0].ttype = default_conversion (yyvsp[0].ttype);
  2592.           yyval.ttype = c_sizeof (TREE_TYPE (yyvsp[0].ttype)); ;
  2593.     break;}
  2594. case 99:
  2595. #line 714 "cplus-parse.y"
  2596. { yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ttype)); ;
  2597.     break;}
  2598. case 100:
  2599. #line 716 "cplus-parse.y"
  2600. { if (TREE_CODE (yyvsp[0].ttype) == COMPONENT_REF
  2601.               && TREE_PACKED (TREE_OPERAND (yyvsp[0].ttype, 1)))
  2602.             error ("`__alignof' applied to a bit-field");
  2603.           if (TREE_CODE (yyvsp[0].ttype) == INDIRECT_REF)
  2604.             {
  2605.               tree t = TREE_OPERAND (yyvsp[0].ttype, 0);
  2606.               tree best = t;
  2607.               int bestalign = TYPE_ALIGN (TREE_TYPE (TREE_TYPE (t)));
  2608.               while (TREE_CODE (t) == NOP_EXPR
  2609.                  && TREE_CODE (TREE_TYPE (TREE_OPERAND (t, 0))) == POINTER_TYPE)
  2610.             {
  2611.               int thisalign;
  2612.               t = TREE_OPERAND (t, 0);
  2613.               thisalign = TYPE_ALIGN (TREE_TYPE (TREE_TYPE (t)));
  2614.               if (thisalign > bestalign)
  2615.                 best = t, bestalign = thisalign;
  2616.             }
  2617.               yyval.ttype = c_alignof (TREE_TYPE (TREE_TYPE (best)));
  2618.             }
  2619.           else
  2620.             {
  2621.               /* ANSI says arrays and fns are converted inside comma.
  2622.              But we can't convert them in build_compound_expr
  2623.              because that would break commas in lvalues.
  2624.              So do the conversion here if operand was a comma.  */
  2625.               if (TREE_CODE (yyvsp[0].ttype) == COMPOUND_EXPR
  2626.               && (TREE_CODE (TREE_TYPE (yyvsp[0].ttype)) == ARRAY_TYPE
  2627.                   || TREE_CODE (TREE_TYPE (yyvsp[0].ttype)) == FUNCTION_TYPE))
  2628.             yyvsp[0].ttype = default_conversion (yyvsp[0].ttype);
  2629.               yyval.ttype = c_alignof (TREE_TYPE (yyvsp[0].ttype));
  2630.             }
  2631.         ;
  2632.     break;}
  2633. case 101:
  2634. #line 749 "cplus-parse.y"
  2635. { yyval.ttype = c_alignof (groktypename (yyvsp[-1].ttype)); ;
  2636.     break;}
  2637. case 102:
  2638. #line 752 "cplus-parse.y"
  2639. { yyval.ttype = build_new (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE); ;
  2640.     break;}
  2641. case 103:
  2642. #line 754 "cplus-parse.y"
  2643. { yyval.ttype = build_new (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
  2644.     break;}
  2645. case 104:
  2646. #line 756 "cplus-parse.y"
  2647. { yyval.ttype = build_new (yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE); ;
  2648.     break;}
  2649. case 105:
  2650. #line 758 "cplus-parse.y"
  2651. { yyval.ttype = build_new (yyvsp[-3].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  2652.     break;}
  2653. case 106:
  2654. #line 760 "cplus-parse.y"
  2655. { yyval.ttype = build_new (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE); ;
  2656.     break;}
  2657. case 107:
  2658. #line 763 "cplus-parse.y"
  2659. { yyungetc (':', 1);
  2660.           yyval.ttype = build_new (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE); ;
  2661.     break;}
  2662. case 108:
  2663. #line 767 "cplus-parse.y"
  2664. { tree expr = convert_from_reference (yyvsp[0].ttype);
  2665.           tree type = TREE_TYPE (expr);
  2666.  
  2667.           if (integer_zerop (expr))
  2668.             yyval.ttype = build1 (NOP_EXPR, void_type_node, expr);
  2669.           else if (TREE_CODE (type) != POINTER_TYPE)
  2670.             {
  2671.               error ("non-pointer type to `delete'");
  2672.               yyval.ttype = error_mark_node;
  2673.             }
  2674.           else if (! TYPE_LANG_SPECIFIC (TREE_TYPE (type))
  2675.                || ! TYPE_USES_VIRTUAL_BASECLASSES (TREE_TYPE (type)))
  2676.             yyval.ttype = build_delete (type, expr, integer_one_node,
  2677.                        LOOKUP_NORMAL, yyvsp[-1].ttype);
  2678.           else
  2679.             {
  2680.               yyval.ttype = build (COMPOUND_EXPR, void_type_node,
  2681.                   build (COMPOUND_EXPR, void_type_node,
  2682.                      build_delete (type, expr, integer_zero_node, LOOKUP_NORMAL, 0),
  2683.                      build_vbase_delete (TREE_TYPE (type),
  2684.                                  build_indirect_ref (expr))),
  2685.                   build_x_delete (type, expr, yyvsp[-1].ttype));
  2686.             }
  2687.         ;
  2688.     break;}
  2689. case 109:
  2690. #line 792 "cplus-parse.y"
  2691. {
  2692.           tree maxindex = build_binary_op (MINUS_EXPR, yyvsp[-2].ttype, integer_one_node);
  2693.           tree exp = convert_from_reference (yyvsp[0].ttype);
  2694.           tree elt_size = c_sizeof (TREE_TYPE (exp));
  2695.  
  2696.           if (yychar == YYEMPTY)
  2697.             yychar = YYLEX;
  2698.  
  2699.           yyval.ttype = build_vec_delete (exp, maxindex, elt_size, NULL_TREE,
  2700.                      integer_one_node, integer_zero_node);
  2701.         ;
  2702.     break;}
  2703. case 111:
  2704. #line 808 "cplus-parse.y"
  2705. { tree type = groktypename (yyvsp[-2].ttype);
  2706.           yyval.ttype = build_c_cast (type, yyvsp[0].ttype); ;
  2707.     break;}
  2708. case 112:
  2709. #line 811 "cplus-parse.y"
  2710. { tree type = groktypename (yyvsp[-5].ttype);
  2711.           tree init = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype));
  2712.           if (pedantic)
  2713.             warning ("ANSI C forbids constructor-expressions");
  2714.           /* Indicate that this was a GNU C constructor expression.  */
  2715.           TREE_HAS_CONSTRUCTOR (init) = 1;
  2716.           yyval.ttype = digest_init (type, init, 0);
  2717.           if (TREE_CODE (type) == ARRAY_TYPE && TYPE_SIZE (type) == 0)
  2718.             {
  2719.               int failure = complete_array_type (type, yyval.ttype, 1);
  2720.               if (failure)
  2721.             abort ();
  2722.             }
  2723.         ;
  2724.     break;}
  2725. case 114:
  2726. #line 830 "cplus-parse.y"
  2727. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  2728.     break;}
  2729. case 115:
  2730. #line 832 "cplus-parse.y"
  2731. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  2732.     break;}
  2733. case 116:
  2734. #line 834 "cplus-parse.y"
  2735. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  2736.     break;}
  2737. case 117:
  2738. #line 836 "cplus-parse.y"
  2739. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  2740.     break;}
  2741. case 118:
  2742. #line 838 "cplus-parse.y"
  2743. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  2744.     break;}
  2745. case 119:
  2746. #line 840 "cplus-parse.y"
  2747. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  2748.     break;}
  2749. case 120:
  2750. #line 842 "cplus-parse.y"
  2751. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  2752.     break;}
  2753. case 121:
  2754. #line 844 "cplus-parse.y"
  2755. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  2756.     break;}
  2757. case 122:
  2758. #line 846 "cplus-parse.y"
  2759. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  2760.     break;}
  2761. case 123:
  2762. #line 848 "cplus-parse.y"
  2763. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  2764.     break;}
  2765. case 124:
  2766. #line 850 "cplus-parse.y"
  2767. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  2768.     break;}
  2769. case 125:
  2770. #line 852 "cplus-parse.y"
  2771. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  2772.     break;}
  2773. case 126:
  2774. #line 854 "cplus-parse.y"
  2775. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  2776.     break;}
  2777. case 127:
  2778. #line 856 "cplus-parse.y"
  2779. { yyval.ttype = build_x_binary_op (TRUTH_ANDIF_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  2780.     break;}
  2781. case 128:
  2782. #line 858 "cplus-parse.y"
  2783. { yyval.ttype = build_x_binary_op (TRUTH_ORIF_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  2784.     break;}
  2785. case 129:
  2786. #line 860 "cplus-parse.y"
  2787. { yyval.ttype = build_x_conditional_expr (yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  2788.     break;}
  2789. case 130:
  2790. #line 862 "cplus-parse.y"
  2791. { yyval.ttype = build_modify_expr (yyvsp[-2].ttype, NOP_EXPR, yyvsp[0].ttype); ;
  2792.     break;}
  2793. case 131:
  2794. #line 864 "cplus-parse.y"
  2795. { register tree rval;
  2796.           if (rval = build_opfncall (MODIFY_EXPR, LOOKUP_NORMAL, yyvsp[-2].ttype, yyvsp[0].ttype, yyvsp[-1].code))
  2797.             yyval.ttype = rval;
  2798.           else
  2799.             yyval.ttype = build_modify_expr (yyvsp[-2].ttype, yyvsp[-1].code, yyvsp[0].ttype); ;
  2800.     break;}
  2801. case 132:
  2802. #line 872 "cplus-parse.y"
  2803. { yyval.ttype = build_m_component_ref (yyvsp[-2].ttype, build_x_indirect_ref (yyvsp[0].ttype, "unary *")); ;
  2804.     break;}
  2805. case 133:
  2806. #line 874 "cplus-parse.y"
  2807. { yyval.ttype = build_m_component_ref (yyvsp[-2].ttype, build_x_unary_op (ADDR_EXPR, yyvsp[0].ttype)); ;
  2808.     break;}
  2809. case 134:
  2810. #line 876 "cplus-parse.y"
  2811. { yyval.ttype = build_m_component_ref (yyvsp[-2].ttype, build_x_unary_op (yyvsp[-1].code, yyvsp[0].ttype)); ;
  2812.     break;}
  2813. case 135:
  2814. #line 878 "cplus-parse.y"
  2815. { tree type = groktypename (yyvsp[-2].ttype);
  2816.           yyval.ttype = build_m_component_ref (yyvsp[-4].ttype, build_c_cast (type, yyvsp[0].ttype)); ;
  2817.     break;}
  2818. case 136:
  2819. #line 881 "cplus-parse.y"
  2820. { yyval.ttype = build_m_component_ref (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  2821.     break;}
  2822. case 137:
  2823. #line 886 "cplus-parse.y"
  2824. { yyval.ttype = lastiddecl;
  2825.           if (yychar == YYEMPTY)
  2826.             yychar = YYLEX;
  2827.           /* Scope class declarations before global
  2828.              declarations.  */
  2829.           if (yyval.ttype == IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype)
  2830.               && current_class_type != 0
  2831.               && TYPE_SIZE (current_class_type) == 0)
  2832.             {
  2833.               /* Could be from one of the base classes.  */
  2834.               tree field = lookup_field (current_class_type, yyvsp[0].ttype, 1);
  2835.               if (field == 0)
  2836.             ;
  2837.               else if (field == error_mark_node)
  2838.             /* We have already generated the error message.
  2839.                But we still want to return this value.  */
  2840.             yyval.ttype = lookup_field (current_class_type, yyvsp[0].ttype, 0);
  2841.               else if (TREE_CODE (field) == VAR_DECL
  2842.                    || TREE_CODE (field) == CONST_DECL)
  2843.             yyval.ttype = field;
  2844.               else if (TREE_CODE (field) != FIELD_DECL)
  2845.             abort ();
  2846.               else
  2847.             {
  2848.               error_with_decl (field, "invalid use of member `%s' from base class `%s'",
  2849.                        TYPE_NAME_STRING (DECL_FIELD_CONTEXT (field)));
  2850.               yyval.ttype = error_mark_node;
  2851.               break;
  2852.             }
  2853.             }
  2854.  
  2855.           if (!yyval.ttype || yyval.ttype == error_mark_node)
  2856.             {
  2857.               if (yychar == '(' || yychar == LEFT_RIGHT)
  2858.             {
  2859.               yyval.ttype = implicitly_declare (yyvsp[0].ttype);
  2860.               assemble_external (yyval.ttype);
  2861.               TREE_USED (yyval.ttype) = 1;
  2862.             }
  2863.               else if (current_function_decl == 0)
  2864.             {
  2865.               error ("`%s' undeclared, outside of functions",
  2866.                  IDENTIFIER_POINTER (yyvsp[0].ttype));
  2867.               yyval.ttype = error_mark_node;
  2868.             }
  2869.               else
  2870.             {
  2871.               if (IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) != error_mark_node
  2872.                   || IDENTIFIER_ERROR_LOCUS (yyvsp[0].ttype) != current_function_decl)
  2873.                 {
  2874.                   error ("`%s' undeclared (first use this function)",
  2875.                      IDENTIFIER_POINTER (yyvsp[0].ttype));
  2876.  
  2877.                   if (! undeclared_variable_notice)
  2878.                 {
  2879.                   error ("(Each undeclared identifier is reported only once");
  2880.                   error ("for each function it appears in.)");
  2881.                   undeclared_variable_notice = 1;
  2882.                 }
  2883.                 }
  2884.               yyval.ttype = error_mark_node;
  2885.               /* Prevent repeated error messages.  */
  2886.               IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) = error_mark_node;
  2887.               SET_IDENTIFIER_ERROR_LOCUS (yyvsp[0].ttype, current_function_decl);
  2888.             }
  2889.             }
  2890.           /* TREE_USED is set in `hack_identifier'.  */
  2891.           if (TREE_CODE (yyval.ttype) == CONST_DECL)
  2892.             {
  2893.               if (IDENTIFIER_CLASS_VALUE (yyvsp[0].ttype) == yyval.ttype)
  2894.             {
  2895.               /* Check visibility.  */
  2896.               enum visibility_type visibility
  2897.                 = compute_visibility (CLASSTYPE_AS_LIST (current_class_type), yyval.ttype);
  2898.               if (visibility == visibility_private)
  2899.                 error_with_decl (yyval.ttype, "enum `%s' is private");
  2900.               /* protected is OK, since it's an enum of `this'.  */
  2901.             }
  2902.               yyval.ttype = DECL_INITIAL (yyval.ttype);
  2903.             }
  2904.           else yyval.ttype = hack_identifier (yyval.ttype, yyvsp[0].ttype, yychar);
  2905.         ;
  2906.     break;}
  2907. case 138:
  2908. #line 969 "cplus-parse.y"
  2909. {
  2910.           tree op = hack_operator (yyvsp[0].ttype);
  2911.           yyval.ttype = lookup_name (op);
  2912.           if (yyval.ttype == NULL_TREE)
  2913.             {
  2914.               error ("operator %s not defined", operator_name_string (op));
  2915.               yyval.ttype = error_mark_node;
  2916.             }
  2917.         ;
  2918.     break;}
  2919. case 140:
  2920. #line 980 "cplus-parse.y"
  2921. { yyval.ttype = combine_strings (yyvsp[0].ttype); ;
  2922.     break;}
  2923. case 141:
  2924. #line 982 "cplus-parse.y"
  2925. { yyval.ttype = yyvsp[-1].ttype; ;
  2926.     break;}
  2927. case 142:
  2928. #line 984 "cplus-parse.y"
  2929. { yyval.ttype = error_mark_node; ;
  2930.     break;}
  2931. case 143:
  2932. #line 986 "cplus-parse.y"
  2933. { if (current_function_decl == 0)
  2934.             {
  2935.               error ("braced-group within expression allowed only inside a function");
  2936.               YYERROR;
  2937.             }
  2938.           keep_next_level ();
  2939.           yyval.ttype = expand_start_stmt_expr (); ;
  2940.     break;}
  2941. case 144:
  2942. #line 994 "cplus-parse.y"
  2943. { tree rtl_exp;
  2944.           if (pedantic)
  2945.             warning ("ANSI C forbids braced-groups within expressions");
  2946.           rtl_exp = expand_end_stmt_expr (yyvsp[-2].ttype);
  2947.           yyval.ttype = yyvsp[-1].ttype;
  2948.           TREE_USED (yyval.ttype) = 0;
  2949.           /* Since the statements have side effects,
  2950.              consider this volatile.  */
  2951.           TREE_VOLATILE (yyval.ttype) = 1;
  2952.           TREE_TYPE (yyval.ttype) = TREE_TYPE (rtl_exp);
  2953.           STMT_BODY (yyval.ttype) = rtl_exp; ;
  2954.     break;}
  2955. case 145:
  2956. #line 1006 "cplus-parse.y"
  2957. { yyval.ttype = build_x_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype, current_class_decl); ;
  2958.     break;}
  2959. case 146:
  2960. #line 1008 "cplus-parse.y"
  2961. { yyval.ttype = build_x_function_call (yyvsp[-1].ttype, NULL_TREE, current_class_decl); ;
  2962.     break;}
  2963. case 147:
  2964. #line 1010 "cplus-parse.y"
  2965. {
  2966.         do_array:
  2967.           {
  2968.             tree type = TREE_TYPE (yyvsp[-3].ttype);
  2969.             if (type == error_mark_node || yyvsp[-1].ttype == error_mark_node)
  2970.               yyval.ttype = error_mark_node;
  2971.             else if (type == NULL_TREE)
  2972.               {
  2973.             /* Something has gone very wrong.  Assume we
  2974.                are mistakenly reducing an expression
  2975.                instead of a declaration.  */
  2976.             error ("parser may be lost: is there a '{' missing somewhere?");
  2977.             yyval.ttype = NULL_TREE;
  2978.               }
  2979.             else
  2980.               {
  2981.             if (TREE_CODE (type) == OFFSET_TYPE)
  2982.               type = TREE_TYPE (type);
  2983.             if (TREE_CODE (type) == REFERENCE_TYPE)
  2984.               type = TREE_TYPE (type);
  2985.  
  2986.             if (TYPE_LANG_SPECIFIC (type) &&
  2987.                 TYPE_OVERLOADS_ARRAY_REF (type))
  2988.               yyval.ttype = build_opfncall (ARRAY_REF, LOOKUP_NORMAL, yyvsp[-3].ttype, yyvsp[-1].ttype);
  2989.             else if (TREE_CODE (type) == POINTER_TYPE
  2990.                  || TREE_CODE (type) == ARRAY_TYPE)
  2991.               yyval.ttype = build_array_ref (yyvsp[-3].ttype, yyvsp[-1].ttype);
  2992.             else
  2993.               error("[] applied to non-pointer type");
  2994.               }
  2995.           }
  2996.         ;
  2997.     break;}
  2998. case 148:
  2999. #line 1043 "cplus-parse.y"
  3000. { yyval.ttype = build_component_ref (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE, 1); ;
  3001.     break;}
  3002. case 149:
  3003. #line 1045 "cplus-parse.y"
  3004. {
  3005.           tree basetype = (TREE_CODE (yyvsp[-1].ttype) == SCOPE_REF) ? TREE_OPERAND (yyvsp[-1].ttype, 1) : yyvsp[-1].ttype;
  3006.           if (is_aggr_typedef (basetype, 1))
  3007.             {
  3008.               basetype = TREE_TYPE (TREE_TYPE (basetype));
  3009.  
  3010.               if (yyvsp[-2].ttype == error_mark_node)
  3011.             yyval.ttype = error_mark_node;
  3012.               else if (basetype_or_else (basetype, TREE_TYPE (yyvsp[-2].ttype)))
  3013.             yyval.ttype = build_component_ref (build_scoped_ref (yyvsp[-2].ttype, yyvsp[-1].ttype), yyvsp[0].ttype, NULL_TREE, 1);
  3014.               else
  3015.             yyval.ttype = error_mark_node;
  3016.             }
  3017.           else yyval.ttype = error_mark_node;
  3018.         ;
  3019.     break;}
  3020. case 150:
  3021. #line 1061 "cplus-parse.y"
  3022. { yyval.ttype = build_x_unary_op (POSTINCREMENT_EXPR, yyvsp[-1].ttype); ;
  3023.     break;}
  3024. case 151:
  3025. #line 1063 "cplus-parse.y"
  3026. { yyval.ttype = build_x_unary_op (POSTDECREMENT_EXPR, yyvsp[-1].ttype); ;
  3027.     break;}
  3028. case 152:
  3029. #line 1067 "cplus-parse.y"
  3030. { if (current_class_decl)
  3031.             {
  3032. #ifdef WARNING_ABOUT_CCD
  3033.               TREE_USED (current_class_decl) = 1;
  3034. #endif
  3035.               yyval.ttype = current_class_decl;
  3036.             }
  3037.           else if (current_function_decl
  3038.                && DECL_STATIC_FUNCTION_P (current_function_decl))
  3039.             {
  3040.               error ("`this' is unavailable for static member functions");
  3041.               yyval.ttype = error_mark_node;
  3042.             }
  3043.           else
  3044.             {
  3045.               if (current_function_decl)
  3046.             error ("invalid use of `this' in non-member function");
  3047.               else
  3048.             error ("invalid use of `this' at top level");
  3049.               yyval.ttype = error_mark_node;
  3050.             }
  3051.         ;
  3052.     break;}
  3053. case 153:
  3054. #line 1090 "cplus-parse.y"
  3055. {
  3056.           tree type;
  3057.           tree id = yyvsp[-3].ttype;
  3058.  
  3059.           /* This is a C cast in C++'s `functional' notation.  */
  3060.           if (yyvsp[-1].ttype == error_mark_node)
  3061.             {
  3062.               yyval.ttype = error_mark_node;
  3063.               break;
  3064.             }
  3065. #if 0
  3066.           if (yyvsp[-1].ttype == NULL_TREE)
  3067.             {
  3068.               error ("cannot cast null list to type `%s'",
  3069.                      IDENTIFIER_POINTER (TYPE_NAME (yyvsp[-3].ttype)));
  3070.               yyval.ttype = error_mark_node;
  3071.               break;
  3072.             }
  3073. #endif
  3074.           if (type == error_mark_node)
  3075.             yyval.ttype = error_mark_node;
  3076.           else
  3077.             {
  3078.               if (id == ridpointers[(int) RID_CONST])
  3079.                 type = build_type_variant (integer_type_node, 1, 0);
  3080.               else if (id == ridpointers[(int) RID_VOLATILE])
  3081.                 type = build_type_variant (integer_type_node, 0, 1);
  3082.               else if (id == ridpointers[(int) RID_FRIEND])
  3083.                 {
  3084.                   error ("cannot cast expression to `friend' type");
  3085.                   yyval.ttype = error_mark_node;
  3086.                   break;
  3087.                 }
  3088.               else abort ();
  3089.               yyval.ttype = build_c_cast (type, build_compound_expr (yyvsp[-1].ttype));
  3090.             }
  3091.         ;
  3092.     break;}
  3093. case 154:
  3094. #line 1128 "cplus-parse.y"
  3095. { yyval.ttype = build_functional_cast (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
  3096.     break;}
  3097. case 155:
  3098. #line 1130 "cplus-parse.y"
  3099. { yyval.ttype = build_functional_cast (yyvsp[-1].ttype, NULL_TREE); ;
  3100.     break;}
  3101. case 156:
  3102. #line 1132 "cplus-parse.y"
  3103. {
  3104.         do_scoped_identifier:
  3105.           yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
  3106.           if (yychar == YYEMPTY)
  3107.             yychar = YYLEX;
  3108.           if (! yyval.ttype)
  3109.             {
  3110.               if (yychar == '(' || yychar == LEFT_RIGHT)
  3111.             {
  3112.               yyval.ttype = implicitly_declare (yyvsp[0].ttype);
  3113.             }
  3114.               else
  3115.             {
  3116.               if (IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) != error_mark_node)
  3117.                 error ("undeclared variable `%s' (first use here)",
  3118.                    IDENTIFIER_POINTER (yyvsp[0].ttype));
  3119.               yyval.ttype = error_mark_node;
  3120.               /* Prevent repeated error messages.  */
  3121.               IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) = error_mark_node;
  3122.             }
  3123.             }
  3124.           else if (TREE_CODE (yyval.ttype) == CONST_DECL)
  3125.             yyval.ttype = DECL_INITIAL (yyval.ttype);
  3126.           if (! TREE_USED (yyval.ttype))
  3127.             {
  3128.               if (TREE_EXTERNAL (yyval.ttype))
  3129.             assemble_external (yyval.ttype);
  3130.               TREE_USED (yyval.ttype) = 1;
  3131.             }
  3132.         ;
  3133.     break;}
  3134. case 157:
  3135. #line 1163 "cplus-parse.y"
  3136. {
  3137.           yyvsp[0].ttype = hack_operator (yyvsp[0].ttype);
  3138.           if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
  3139.             goto do_scoped_identifier;
  3140.         do_scoped_operator:
  3141.           yyval.ttype = yyvsp[0].ttype;
  3142.         ;
  3143.     break;}
  3144. case 158:
  3145. #line 1171 "cplus-parse.y"
  3146. { yyval.ttype = build_offset_ref (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  3147.     break;}
  3148. case 159:
  3149. #line 1173 "cplus-parse.y"
  3150. { yyval.ttype = build_member_call (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
  3151.     break;}
  3152. case 160:
  3153. #line 1175 "cplus-parse.y"
  3154. { yyval.ttype = build_member_call (yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE); ;
  3155.     break;}
  3156. case 161:
  3157. #line 1178 "cplus-parse.y"
  3158. { yyval.ttype = build_method_call (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE,
  3159.                       (LOOKUP_NORMAL|LOOKUP_AGGR)); ;
  3160.     break;}
  3161. case 162:
  3162. #line 1181 "cplus-parse.y"
  3163. { yyval.ttype = build_method_call (yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE,
  3164.                       (LOOKUP_NORMAL|LOOKUP_AGGR)); ;
  3165.     break;}
  3166. case 163:
  3167. #line 1184 "cplus-parse.y"
  3168. { yyval.ttype = build_scoped_method_call (yyvsp[-5].ttype, yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
  3169.     break;}
  3170. case 164:
  3171. #line 1186 "cplus-parse.y"
  3172. { yyval.ttype = build_scoped_method_call (yyvsp[-3].ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE); ;
  3173.     break;}
  3174. case 165:
  3175. #line 1191 "cplus-parse.y"
  3176. { yyval.ttype = yyvsp[-1].ttype; ;
  3177.     break;}
  3178. case 166:
  3179. #line 1193 "cplus-parse.y"
  3180. { yyval.ttype = error_mark_node; ;
  3181.     break;}
  3182. case 167:
  3183. #line 1195 "cplus-parse.y"
  3184. { if (current_function_decl == 0)
  3185.             {
  3186.               error ("braced-group within expression allowed only inside a function");
  3187.               YYERROR;
  3188.             }
  3189.           yyval.ttype = expand_start_stmt_expr (); ;
  3190.     break;}
  3191. case 168:
  3192. #line 1202 "cplus-parse.y"
  3193. { if (pedantic)
  3194.             warning ("ANSI C forbids braced-groups within expressions");
  3195.           yyval.ttype = expand_end_stmt_expr (yyvsp[-2].ttype); ;
  3196.     break;}
  3197. case 169:
  3198. #line 1206 "cplus-parse.y"
  3199. { yyval.ttype = build_x_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype, current_class_decl); ;
  3200.     break;}
  3201. case 170:
  3202. #line 1208 "cplus-parse.y"
  3203. { yyval.ttype = build_x_function_call (yyvsp[-1].ttype, NULL_TREE, current_class_decl); ;
  3204.     break;}
  3205. case 171:
  3206. #line 1210 "cplus-parse.y"
  3207. { goto do_array; ;
  3208.     break;}
  3209. case 172:
  3210. #line 1212 "cplus-parse.y"
  3211. { yyval.ttype = build_x_unary_op (POSTINCREMENT_EXPR, yyvsp[-1].ttype); ;
  3212.     break;}
  3213. case 173:
  3214. #line 1214 "cplus-parse.y"
  3215. { yyval.ttype = build_x_unary_op (POSTDECREMENT_EXPR, yyvsp[-1].ttype); ;
  3216.     break;}
  3217. case 174:
  3218. #line 1216 "cplus-parse.y"
  3219. { goto do_scoped_identifier; ;
  3220.     break;}
  3221. case 175:
  3222. #line 1218 "cplus-parse.y"
  3223. { yyvsp[0].ttype = hack_operator (yyvsp[0].ttype);
  3224.           if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
  3225.             goto do_scoped_identifier;
  3226.           goto do_scoped_operator;
  3227.         ;
  3228.     break;}
  3229. case 176:
  3230. #line 1226 "cplus-parse.y"
  3231. { yyval.ttype = NULL_TREE; ;
  3232.     break;}
  3233. case 177:
  3234. #line 1228 "cplus-parse.y"
  3235. { yyval.ttype = yyvsp[-1].ttype; ;
  3236.     break;}
  3237. case 178:
  3238. #line 1230 "cplus-parse.y"
  3239. { yyval.ttype = void_type_node; ;
  3240.     break;}
  3241. case 179:
  3242. #line 1232 "cplus-parse.y"
  3243. { yyval.ttype = combine_strings (yyvsp[-1].ttype); ;
  3244.     break;}
  3245. case 180:
  3246. #line 1234 "cplus-parse.y"
  3247. { if (yyvsp[0].ttype != NULL_TREE
  3248.               && TREE_CODE (yyvsp[0].ttype) == TREE_LIST
  3249.               && TREE_PURPOSE (yyvsp[0].ttype) != NULL_TREE)
  3250.             error ("extra `::' before `new' ignored");
  3251.           else
  3252.             yyval.ttype = build_tree_list (error_mark_node, yyvsp[0].ttype);
  3253.         ;
  3254.     break;}
  3255. case 181:
  3256. #line 1244 "cplus-parse.y"
  3257. { yyval.ttype = NULL_TREE; ;
  3258.     break;}
  3259. case 182:
  3260. #line 1246 "cplus-parse.y"
  3261. { if (yyvsp[0].ttype)
  3262.             error ("extra `::' before `delete' ignored");
  3263.           yyval.ttype = error_mark_node;
  3264.         ;
  3265.     break;}
  3266. case 184:
  3267. #line 1256 "cplus-parse.y"
  3268. { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  3269.     break;}
  3270. case 185:
  3271. #line 1261 "cplus-parse.y"
  3272. {
  3273.           if (! current_function_parms_stored)
  3274.             store_parm_decls ();
  3275.           setup_vtbl_ptr ();
  3276.         ;
  3277.     break;}
  3278. case 186:
  3279. #line 1269 "cplus-parse.y"
  3280. {
  3281.           if (yyvsp[-1].ttype == error_mark_node)
  3282.             yyval.ttype = error_mark_node;
  3283.           else
  3284.             {
  3285.               tree type = TREE_TYPE (yyvsp[-1].ttype);
  3286.  
  3287.               if (IS_AGGR_TYPE (type)
  3288.               || (TREE_CODE (type) == REFERENCE_TYPE
  3289.                   && IS_AGGR_TYPE (TREE_TYPE (type))))
  3290.             yyval.ttype = yyvsp[-1].ttype;
  3291.               else
  3292.             {
  3293.               error ("object in '.' expression is not of aggregate type");
  3294.               yyval.ttype = error_mark_node;
  3295.             }
  3296.             }
  3297.         ;
  3298.     break;}
  3299. case 187:
  3300. #line 1288 "cplus-parse.y"
  3301. {
  3302.           yyval.ttype = build_x_arrow (yyvsp[-1].ttype);
  3303.         ;
  3304.     break;}
  3305. case 188:
  3306. #line 1295 "cplus-parse.y"
  3307. {
  3308.           resume_momentary (yyvsp[-1].itype);
  3309.           note_got_semicolon (yyvsp[-2].ttype);
  3310.         ;
  3311.     break;}
  3312. case 189:
  3313. #line 1301 "cplus-parse.y"
  3314. { tree d;
  3315.           int yes = suspend_momentary ();
  3316.           d = start_decl (yyvsp[-1].ttype, yyvsp[-2].ttype, 0, NULL_TREE);
  3317.           finish_decl (d, NULL_TREE, NULL_TREE);
  3318.           resume_momentary (yes);
  3319.           note_got_semicolon (yyvsp[-2].ttype);
  3320.         ;
  3321.     break;}
  3322. case 190:
  3323. #line 1309 "cplus-parse.y"
  3324. { resume_momentary (yyvsp[-1].itype); ;
  3325.     break;}
  3326. case 191:
  3327. #line 1312 "cplus-parse.y"
  3328. { tree d;
  3329.           int yes = suspend_momentary ();
  3330.           d = start_decl (yyvsp[-1].ttype, yyvsp[-2].ttype, 0, NULL_TREE);
  3331.           finish_decl (d, NULL_TREE, NULL_TREE);
  3332.           resume_momentary (yes);
  3333.         ;
  3334.     break;}
  3335. case 192:
  3336. #line 1319 "cplus-parse.y"
  3337. {
  3338.           shadow_tag (yyvsp[-1].ttype);
  3339.           note_got_semicolon (yyvsp[-1].ttype);
  3340.         ;
  3341.     break;}
  3342. case 193:
  3343. #line 1324 "cplus-parse.y"
  3344. { warning ("empty declaration"); ;
  3345.     break;}
  3346. case 196:
  3347. #line 1341 "cplus-parse.y"
  3348. { yyval.ttype = list_hash_lookup_or_cons (yyvsp[0].ttype); ;
  3349.     break;}
  3350. case 197:
  3351. #line 1343 "cplus-parse.y"
  3352. { yyval.ttype = hash_tree_chain (yyvsp[0].ttype, yyvsp[-1].ttype); ;
  3353.     break;}
  3354. case 198:
  3355. #line 1345 "cplus-parse.y"
  3356. { yyval.ttype = hash_tree_chain (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  3357.     break;}
  3358. case 199:
  3359. #line 1347 "cplus-parse.y"
  3360. { yyval.ttype = hash_tree_chain (yyvsp[-1].ttype, chainon (yyvsp[0].ttype, yyvsp[-2].ttype)); ;
  3361.     break;}
  3362. case 200:
  3363. #line 1353 "cplus-parse.y"
  3364. { yyval.ttype = build_decl_list (NULL_TREE, yyvsp[0].ttype); ;
  3365.     break;}
  3366. case 201:
  3367. #line 1355 "cplus-parse.y"
  3368. { yyval.ttype = build_decl_list (NULL_TREE, yyvsp[0].ttype); ;
  3369.     break;}
  3370. case 202:
  3371. #line 1357 "cplus-parse.y"
  3372. { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
  3373.     break;}
  3374. case 203:
  3375. #line 1359 "cplus-parse.y"
  3376. { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
  3377.     break;}
  3378. case 204:
  3379. #line 1368 "cplus-parse.y"
  3380. { yyval.ttype = list_hash_lookup_or_cons (yyvsp[0].ttype); ;
  3381.     break;}
  3382. case 205:
  3383. #line 1370 "cplus-parse.y"
  3384. { yyval.ttype = list_hash_lookup_or_cons (yyvsp[0].ttype); ;
  3385.     break;}
  3386. case 206:
  3387. #line 1372 "cplus-parse.y"
  3388. { yyval.ttype = hash_tree_chain (yyvsp[0].ttype, yyvsp[-1].ttype); ;
  3389.     break;}
  3390. case 207:
  3391. #line 1374 "cplus-parse.y"
  3392. { yyval.ttype = hash_tree_chain (yyvsp[0].ttype, yyvsp[-1].ttype); ;
  3393.     break;}
  3394. case 208:
  3395. #line 1386 "cplus-parse.y"
  3396. { yyval.ttype = build_decl_list (NULL_TREE, yyvsp[0].ttype); ;
  3397.     break;}
  3398. case 209:
  3399. #line 1388 "cplus-parse.y"
  3400. { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
  3401.     break;}
  3402. case 210:
  3403. #line 1390 "cplus-parse.y"
  3404. { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
  3405.     break;}
  3406. case 211:
  3407. #line 1392 "cplus-parse.y"
  3408. { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[-1].ttype, chainon (yyvsp[0].ttype, yyvsp[-2].ttype)); ;
  3409.     break;}
  3410. case 212:
  3411. #line 1397 "cplus-parse.y"
  3412. { yyval.ttype = build_decl_list (NULL_TREE, yyvsp[0].ttype); ;
  3413.     break;}
  3414. case 213:
  3415. #line 1399 "cplus-parse.y"
  3416. { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
  3417.     break;}
  3418. case 217:
  3419. #line 1410 "cplus-parse.y"
  3420. { yyval.ttype = TREE_TYPE (yyvsp[-1].ttype);
  3421.           if (pedantic)
  3422.             warning ("ANSI C forbids `typeof'"); ;
  3423.     break;}
  3424. case 218:
  3425. #line 1414 "cplus-parse.y"
  3426. { yyval.ttype = groktypename (yyvsp[-1].ttype);
  3427.           if (pedantic)
  3428.             warning ("ANSI C forbids `typeof'"); ;
  3429.     break;}
  3430. case 222:
  3431. #line 1428 "cplus-parse.y"
  3432. { yyval.ttype = yyvsp[0].ttype; ;
  3433.     break;}
  3434. case 223:
  3435. #line 1430 "cplus-parse.y"
  3436. { yyval.ttype = yyvsp[0].ttype; ;
  3437.     break;}
  3438. case 224:
  3439. #line 1432 "cplus-parse.y"
  3440. { yyval.ttype = yyvsp[0].ttype; ;
  3441.     break;}
  3442. case 225:
  3443. #line 1434 "cplus-parse.y"
  3444. { yyval.ttype = TREE_TYPE (yyvsp[-1].ttype);
  3445.           if (pedantic)
  3446.             warning ("ANSI C forbids `typeof'") ;
  3447.     break;}
  3448. case 226:
  3449. #line 1438 "cplus-parse.y"
  3450. { yyval.ttype = groktypename (yyvsp[-1].ttype);
  3451.           if (pedantic)
  3452.             warning ("ANSI C forbids `typeof'") ;
  3453.     break;}
  3454. case 231:
  3455. #line 1455 "cplus-parse.y"
  3456. { yyval.ttype = NULL_TREE; ;
  3457.     break;}
  3458. case 232:
  3459. #line 1457 "cplus-parse.y"
  3460. { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype);
  3461.           yyval.ttype = yyvsp[-1].ttype;
  3462.           if (pedantic)
  3463.             warning ("ANSI C forbids use of `asm' keyword");
  3464.         ;
  3465.     break;}
  3466. case 233:
  3467. #line 1466 "cplus-parse.y"
  3468. { current_declspecs = yyvsp[-5].ttype;
  3469.           yyvsp[0].itype = suspend_momentary ();
  3470.           yyval.ttype = start_decl (yyvsp[-4].ttype, current_declspecs, 1, yyvsp[-3].ttype); ;
  3471.     break;}
  3472. case 234:
  3473. #line 1471 "cplus-parse.y"
  3474. { finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype);
  3475.           yyval.itype = yyvsp[-2].itype; ;
  3476.     break;}
  3477. case 235:
  3478. #line 1474 "cplus-parse.y"
  3479. { tree d;
  3480.           current_declspecs = yyvsp[-4].ttype;
  3481.           yyval.itype = suspend_momentary ();
  3482.           d = start_decl (yyvsp[-3].ttype, current_declspecs, 0, yyvsp[-2].ttype);
  3483.           finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ;
  3484.     break;}
  3485. case 236:
  3486. #line 1483 "cplus-parse.y"
  3487. { yyval.ttype = start_decl (yyvsp[-4].ttype, current_declspecs, 1, yyvsp[-3].ttype); ;
  3488.     break;}
  3489. case 237:
  3490. #line 1486 "cplus-parse.y"
  3491. { finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
  3492.     break;}
  3493. case 238:
  3494. #line 1488 "cplus-parse.y"
  3495. { tree d = start_decl (yyvsp[-3].ttype, current_declspecs, 0, yyvsp[-2].ttype);
  3496.           finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ;
  3497.     break;}
  3498. case 239:
  3499. #line 1494 "cplus-parse.y"
  3500. { current_declspecs = yyvsp[-5].ttype;
  3501.           yyvsp[0].itype = suspend_momentary ();
  3502.           yyval.ttype = start_decl (yyvsp[-4].ttype, current_declspecs, 1, yyvsp[-3].ttype); ;
  3503.     break;}
  3504. case 240:
  3505. #line 1499 "cplus-parse.y"
  3506. { finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype);
  3507.           yyval.itype = yyvsp[-2].itype; ;
  3508.     break;}
  3509. case 241:
  3510. #line 1502 "cplus-parse.y"
  3511. { tree d;
  3512.           current_declspecs = yyvsp[-4].ttype;
  3513.           yyval.itype = suspend_momentary ();
  3514.           d = start_decl (yyvsp[-3].ttype, current_declspecs, 0, yyvsp[-2].ttype);
  3515.           finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ;
  3516.     break;}
  3517. case 242:
  3518. #line 1513 "cplus-parse.y"
  3519. { yyval.ttype = NULL_TREE; ;
  3520.     break;}
  3521. case 243:
  3522. #line 1515 "cplus-parse.y"
  3523. { yyval.ttype = yyvsp[-2].ttype; ;
  3524.     break;}
  3525. case 246:
  3526. #line 1525 "cplus-parse.y"
  3527. { warning ("`%s' attribute directive ignored",
  3528.            IDENTIFIER_POINTER (yyvsp[0].ttype));
  3529.       yyval.ttype = yyvsp[0].ttype; ;
  3530.     break;}
  3531. case 247:
  3532. #line 1529 "cplus-parse.y"
  3533. { /* if not "aligned(1)", then issue warning */
  3534.       if (strcmp (IDENTIFIER_POINTER (yyvsp[-3].ttype), "aligned") != 0
  3535.           || TREE_CODE (yyvsp[-1].ttype) != INTEGER_CST
  3536.           || TREE_INT_CST_LOW (yyvsp[-1].ttype) != 1)
  3537.         warning ("`%s' attribute directive ignored",
  3538.              IDENTIFIER_POINTER (yyvsp[-3].ttype));
  3539.       yyval.ttype = yyvsp[-3].ttype; ;
  3540.     break;}
  3541. case 248:
  3542. #line 1537 "cplus-parse.y"
  3543. { warning ("`%s' attribute directive ignored",
  3544.            IDENTIFIER_POINTER (yyvsp[-3].ttype));
  3545.       yyval.ttype = yyvsp[-3].ttype; ;
  3546.     break;}
  3547. case 249:
  3548. #line 1544 "cplus-parse.y"
  3549. { ;
  3550.     break;}
  3551. case 250:
  3552. #line 1546 "cplus-parse.y"
  3553. { ;
  3554.     break;}
  3555. case 252:
  3556. #line 1552 "cplus-parse.y"
  3557. { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, NULL_TREE);
  3558.           TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1;
  3559.           if (pedantic)
  3560.             warning ("ANSI C forbids empty initializer braces"); ;
  3561.     break;}
  3562. case 253:
  3563. #line 1557 "cplus-parse.y"
  3564. { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-1].ttype));
  3565.           TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
  3566.     break;}
  3567. case 254:
  3568. #line 1560 "cplus-parse.y"
  3569. { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype));
  3570.           TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
  3571.     break;}
  3572. case 255:
  3573. #line 1563 "cplus-parse.y"
  3574. { yyval.ttype = NULL_TREE; ;
  3575.     break;}
  3576. case 256:
  3577. #line 1570 "cplus-parse.y"
  3578. { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
  3579.     break;}
  3580. case 257:
  3581. #line 1572 "cplus-parse.y"
  3582. { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype); ;
  3583.     break;}
  3584. case 258:
  3585. #line 1577 "cplus-parse.y"
  3586. { yyvsp[0].itype = suspend_momentary ();
  3587.           yyval.ttype = start_enum (yyvsp[-1].ttype); ;
  3588.     break;}
  3589. case 259:
  3590. #line 1580 "cplus-parse.y"
  3591. { yyval.ttype = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype);
  3592.           resume_momentary (yyvsp[-4].itype);
  3593.           check_for_missing_semicolon (yyvsp[-3].ttype); ;
  3594.     break;}
  3595. case 260:
  3596. #line 1584 "cplus-parse.y"
  3597. { yyvsp[0].itype = suspend_momentary ();
  3598.           yyval.ttype = start_enum (make_anon_name ()); ;
  3599.     break;}
  3600. case 261:
  3601. #line 1587 "cplus-parse.y"
  3602. { yyval.ttype = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype);
  3603.           resume_momentary (yyvsp[-5].itype);
  3604.           check_for_missing_semicolon (yyvsp[-3].ttype); ;
  3605.     break;}
  3606. case 262:
  3607. #line 1591 "cplus-parse.y"
  3608. { yyval.ttype = xref_tag (enum_type_node, yyvsp[0].ttype, NULL_TREE); ;
  3609.     break;}
  3610. case 263:
  3611. #line 1595 "cplus-parse.y"
  3612. {
  3613.           if (TREE_CODE (yyvsp[-3].ttype) == ENUMERAL_TYPE)
  3614.             yyval.ttype = yyvsp[-3].ttype;
  3615.           else if (CLASSTYPE_DECLARED_EXCEPTION (yyvsp[-3].ttype))
  3616.             yyval.ttype = finish_exception (yyvsp[-3].ttype, yyvsp[-1].ttype);
  3617.           else
  3618.             yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-1].ttype, 0, 0);
  3619.             
  3620.           if (yyvsp[-2].itype & 1)
  3621.             resume_temporary_allocation ();
  3622.           if (yyvsp[-2].itype & 2)
  3623.             resume_momentary (1);
  3624.           check_for_missing_semicolon (yyval.ttype);
  3625.         ;
  3626.     break;}
  3627. case 264:
  3628. #line 1610 "cplus-parse.y"
  3629. { if (TREE_CODE (yyvsp[-4].ttype) == ENUMERAL_TYPE)
  3630.             yyval.ttype = yyvsp[-4].ttype;
  3631.           else if (CLASSTYPE_DECLARED_EXCEPTION (yyvsp[-4].ttype))
  3632.             warning ("empty exception declaration\n");
  3633.           else
  3634.             yyval.ttype = finish_struct (yyvsp[-4].ttype, yyvsp[-2].ttype, 1, 1);
  3635.           if (yyvsp[-3].itype & 1)
  3636.             resume_temporary_allocation ();
  3637.           if (yyvsp[-3].itype & 2)
  3638.             resume_momentary (1);
  3639.           note_got_semicolon (yyval.ttype);
  3640.           yyungetc (';', 0); ;
  3641.     break;}
  3642. case 265:
  3643. #line 1623 "cplus-parse.y"
  3644. { yyval.ttype = yyvsp[0].ttype; ;
  3645.     break;}
  3646. case 269:
  3647. #line 1634 "cplus-parse.y"
  3648. { if (pedantic) warning ("comma at end of enumerator list"); ;
  3649.     break;}
  3650. case 270:
  3651. #line 1638 "cplus-parse.y"
  3652. { yyval.ttype = yyvsp[0].ttype; ;
  3653.     break;}
  3654. case 271:
  3655. #line 1640 "cplus-parse.y"
  3656. { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
  3657.     break;}
  3658. case 272:
  3659. #line 1642 "cplus-parse.y"
  3660. { yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype); ;
  3661.     break;}
  3662. case 273:
  3663. #line 1644 "cplus-parse.y"
  3664. { error ("storage class specifier `%s' not allow after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype));
  3665.         ;
  3666.     break;}
  3667. case 274:
  3668. #line 1647 "cplus-parse.y"
  3669. { error ("type specifier `%s' not allow after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype));
  3670.         ;
  3671.     break;}
  3672. case 275:
  3673. #line 1650 "cplus-parse.y"
  3674. { error ("type qualifier `%s' not allow after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype));
  3675.         ;
  3676.     break;}
  3677. case 276:
  3678. #line 1653 "cplus-parse.y"
  3679. { error ("no body nor ';' separates two class, struct or union declarations");
  3680.         ;
  3681.     break;}
  3682. case 277:
  3683. #line 1658 "cplus-parse.y"
  3684. { yyval.ttype = xref_tag (yyvsp[0].ttype, make_anon_name (), NULL_TREE); ;
  3685.     break;}
  3686. case 278:
  3687. #line 1660 "cplus-parse.y"
  3688. { yyval.ttype = xref_tag (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE); ;
  3689.     break;}
  3690. case 279:
  3691. #line 1662 "cplus-parse.y"
  3692. { yyval.ttype = xref_tag (yyvsp[-3].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  3693.     break;}
  3694. case 280:
  3695. #line 1664 "cplus-parse.y"
  3696. { yyungetc (':', 1);
  3697.           yyval.ttype = xref_tag (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE); ;
  3698.     break;}
  3699. case 281:
  3700. #line 1667 "cplus-parse.y"
  3701. { yyval.ttype = xref_tag (yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
  3702.     break;}
  3703. case 282:
  3704. #line 1672 "cplus-parse.y"
  3705. { if (! is_aggr_typedef (yyvsp[0].ttype, 1))
  3706.             yyval.ttype = NULL_TREE;
  3707.           else yyval.ttype = build_tree_list ((tree)visibility_default, yyvsp[0].ttype); ;
  3708.     break;}
  3709. case 283:
  3710. #line 1676 "cplus-parse.y"
  3711. { if (! is_aggr_typedef (yyvsp[0].ttype, 1))
  3712.             yyval.ttype = NULL_TREE;
  3713.           else yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  3714.     break;}
  3715. case 284:
  3716. #line 1680 "cplus-parse.y"
  3717. { if (! is_aggr_typedef (yyvsp[0].ttype, 1))
  3718.             yyval.ttype = NULL_TREE;
  3719.           else yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list ((tree)visibility_default, yyvsp[0].ttype)); ;
  3720.     break;}
  3721. case 285:
  3722. #line 1684 "cplus-parse.y"
  3723. { if (! is_aggr_typedef (yyvsp[0].ttype, 1))
  3724.             yyval.ttype = NULL_TREE;
  3725.           else yyval.ttype = chainon (yyvsp[-3].ttype, build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype)); ;
  3726.     break;}
  3727. case 286:
  3728. #line 1691 "cplus-parse.y"
  3729. { yyval.ttype = (tree)visibility_public; ;
  3730.     break;}
  3731. case 287:
  3732. #line 1693 "cplus-parse.y"
  3733. { yyval.ttype = (tree)visibility_private; ;
  3734.     break;}
  3735. case 288:
  3736. #line 1695 "cplus-parse.y"
  3737. { if (yyvsp[0].ttype != ridpointers[(int)RID_VIRTUAL])
  3738.             sorry ("non-virtual visibility");
  3739.           yyval.ttype = (tree)visibility_default_virtual; ;
  3740.     break;}
  3741. case 289:
  3742. #line 1699 "cplus-parse.y"
  3743. { if (yyvsp[-1].ttype == (tree)visibility_private)
  3744.             error ("base class cannot be public and private");
  3745.           else if (yyvsp[-1].ttype == (tree)visibility_default_virtual)
  3746.             yyval.ttype = (tree)visibility_public_virtual; ;
  3747.     break;}
  3748. case 290:
  3749. #line 1704 "cplus-parse.y"
  3750. { if (yyvsp[-1].ttype == (tree)visibility_public)
  3751.             error ("base class cannot be private and public");
  3752.           else if (yyvsp[-1].ttype == (tree)visibility_default_virtual)
  3753.             yyval.ttype = (tree)visibility_private_virtual; ;
  3754.     break;}
  3755. case 291:
  3756. #line 1709 "cplus-parse.y"
  3757. { if (yyvsp[0].ttype != ridpointers[(int)RID_VIRTUAL])
  3758.             sorry ("non-virtual visibility");
  3759.           if (yyvsp[-1].ttype == (tree)visibility_public)
  3760.             yyval.ttype = (tree)visibility_public_virtual;
  3761.           else if (yyvsp[-1].ttype == (tree)visibility_private)
  3762.             yyval.ttype = (tree)visibility_private_virtual; ;
  3763.     break;}
  3764. case 292:
  3765. #line 1718 "cplus-parse.y"
  3766. { int temp = allocation_temporary_p ();
  3767.           int momentary = suspend_momentary ();
  3768.           if (temp)
  3769.             end_temporary_allocation ();
  3770.           yyval.itype = (momentary << 1) | temp;
  3771.           if (! IS_AGGR_TYPE (yyvsp[-1].ttype))
  3772.             {
  3773.               yyvsp[-1].ttype = make_lang_type (RECORD_TYPE);
  3774.               TYPE_NAME (yyvsp[-1].ttype) = get_identifier ("erroneous type");
  3775.             }
  3776.           pushclass (yyvsp[-1].ttype, 0); ;
  3777.     break;}
  3778. case 293:
  3779. #line 1732 "cplus-parse.y"
  3780. { yyval.ttype = NULL_TREE; ;
  3781.     break;}
  3782. case 294:
  3783. #line 1734 "cplus-parse.y"
  3784. { yyval.ttype = build_tree_list ((tree)visibility_default, yyvsp[0].ttype); ;
  3785.     break;}
  3786. case 295:
  3787. #line 1736 "cplus-parse.y"
  3788. { yyval.ttype = chainon (yyvsp[-3].ttype, build_tree_list ((tree)visibility_public, yyvsp[0].ttype)); ;
  3789.     break;}
  3790. case 296:
  3791. #line 1738 "cplus-parse.y"
  3792. { yyval.ttype = chainon (yyvsp[-3].ttype, build_tree_list ((tree)visibility_private, yyvsp[0].ttype)); ;
  3793.     break;}
  3794. case 297:
  3795. #line 1740 "cplus-parse.y"
  3796. { yyval.ttype = chainon (yyvsp[-3].ttype, build_tree_list ((tree)visibility_protected, yyvsp[0].ttype)); ;
  3797.     break;}
  3798. case 301:
  3799. #line 1748 "cplus-parse.y"
  3800. { if (yyvsp[0].ttype == void_type_node) yyval.ttype = NULL_TREE; ;
  3801.     break;}
  3802. case 302:
  3803. #line 1750 "cplus-parse.y"
  3804. { if (yyvsp[0].ttype != NULL_TREE && yyvsp[0].ttype != void_type_node)
  3805.             yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  3806.     break;}
  3807. case 303:
  3808. #line 1753 "cplus-parse.y"
  3809. { if (pedantic)
  3810.             warning ("extra semicolon in struct or union specified"); ;
  3811.     break;}
  3812. case 304:
  3813. #line 1759 "cplus-parse.y"
  3814. {
  3815.         do_components:
  3816.           if (yyvsp[-1].ttype == void_type_node)
  3817.             /* We just got some friends.
  3818.                They have been recorded elsewhere.  */
  3819.             yyval.ttype = NULL_TREE;
  3820.           else if (yyvsp[-1].ttype == NULL_TREE)
  3821.             {
  3822.               tree t = groktypename (build_decl_list (yyvsp[-2].ttype, NULL_TREE));
  3823.               if (t == NULL_TREE)
  3824.             {
  3825.               error ("error in component specification");
  3826.               yyval.ttype = NULL_TREE;
  3827.             }
  3828.               else if (TREE_CODE (t) == UNION_TYPE)
  3829.             {
  3830.               /* handle anonymous unions */
  3831.               if (CLASSTYPE_METHOD_VEC (t))
  3832.                 sorry ("methods in anonymous unions");
  3833.               yyval.ttype = build_lang_field_decl (FIELD_DECL, NULL_TREE, t);
  3834.               DECL_ANON_UNION_ELEM (yyval.ttype) = 1;
  3835.             }
  3836.               else if (TREE_CODE (t) == ENUMERAL_TYPE)
  3837.             yyval.ttype = grok_enum_decls (t, NULL_TREE);
  3838.               else
  3839.             {
  3840.               if (TREE_CODE (t) == RECORD_TYPE
  3841.                   && TYPE_LANG_SPECIFIC (t)
  3842.                   && CLASSTYPE_DECLARED_EXCEPTION (t))
  3843.                 shadow_tag (yyvsp[-2].ttype);
  3844.               yyval.ttype = NULL_TREE;
  3845.             }
  3846.             }
  3847.           else
  3848.             {
  3849.               tree t = TREE_TYPE (yyvsp[-1].ttype);
  3850.               if (TREE_CODE (t) == ENUMERAL_TYPE && TREE_NONLOCAL (t))
  3851.             yyval.ttype = grok_enum_decls (t, yyvsp[-1].ttype);
  3852.               else
  3853.             yyval.ttype = yyvsp[-1].ttype;
  3854.             }
  3855.           end_exception_decls ();
  3856.         ;
  3857.     break;}
  3858. case 305:
  3859. #line 1803 "cplus-parse.y"
  3860. { yyval.ttype = groktypefield (yyvsp[-4].ttype, yyvsp[-2].ttype); ;
  3861.     break;}
  3862. case 306:
  3863. #line 1805 "cplus-parse.y"
  3864. { error ("missing ';' before right brace");
  3865.           yyungetc ('}', 0);
  3866.           yyval.ttype = groktypefield (yyvsp[-4].ttype, yyvsp[-2].ttype); ;
  3867.     break;}
  3868. case 307:
  3869. #line 1809 "cplus-parse.y"
  3870. { yyval.ttype = groktypefield (yyvsp[-2].ttype, empty_parms ()); ;
  3871.     break;}
  3872. case 308:
  3873. #line 1811 "cplus-parse.y"
  3874. { error ("missing ';' before right brace");
  3875.           yyungetc ('}', 0);
  3876.           yyval.ttype = groktypefield (yyvsp[-2].ttype, empty_parms ()); ;
  3877.     break;}
  3878. case 309:
  3879. #line 1815 "cplus-parse.y"
  3880. { goto do_components; ;
  3881.     break;}
  3882. case 310:
  3883. #line 1818 "cplus-parse.y"
  3884. { yyval.ttype = grokfield (yyvsp[-1].ttype, yyvsp[-2].ttype, 0, 0, 0, 0); ;
  3885.     break;}
  3886. case 311:
  3887. #line 1820 "cplus-parse.y"
  3888. { error ("missing ';' before right brace");
  3889.           yyungetc ('}', 0);
  3890.           goto do_components; ;
  3891.     break;}
  3892. case 312:
  3893. #line 1824 "cplus-parse.y"
  3894. { yyval.ttype = groktypefield (yyvsp[-4].ttype, yyvsp[-2].ttype); ;
  3895.     break;}
  3896. case 313:
  3897. #line 1826 "cplus-parse.y"
  3898. { error ("missing ';' before right brace");
  3899.           yyungetc ('}', 0);
  3900.           yyval.ttype = groktypefield (yyvsp[-4].ttype, yyvsp[-2].ttype); ;
  3901.     break;}
  3902. case 314:
  3903. #line 1830 "cplus-parse.y"
  3904. { yyval.ttype = groktypefield (yyvsp[-2].ttype, empty_parms ()); ;
  3905.     break;}
  3906. case 315:
  3907. #line 1832 "cplus-parse.y"
  3908. { error ("missing ';' before right brace");
  3909.           yyungetc ('}', 0);
  3910.           yyval.ttype = groktypefield (yyvsp[-2].ttype, empty_parms ()); ;
  3911.     break;}
  3912. case 316:
  3913. #line 1836 "cplus-parse.y"
  3914. { yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
  3915.     break;}
  3916. case 317:
  3917. #line 1838 "cplus-parse.y"
  3918. { error ("missing ';' before right brace");
  3919.           yyungetc ('}', 0);
  3920.           yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
  3921.     break;}
  3922. case 318:
  3923. #line 1842 "cplus-parse.y"
  3924. { yyval.ttype = NULL_TREE; ;
  3925.     break;}
  3926. case 319:
  3927. #line 1847 "cplus-parse.y"
  3928. { yyval.ttype = finish_method (yyvsp[-1].ttype); ;
  3929.     break;}
  3930. case 320:
  3931. #line 1849 "cplus-parse.y"
  3932. { yyval.ttype = finish_method (yyvsp[-1].ttype); ;
  3933.     break;}
  3934. case 321:
  3935. #line 1851 "cplus-parse.y"
  3936. { yyval.ttype = grokfield (yyvsp[-2].ttype, NULL_TREE, yyvsp[-1].ttype, NULL_TREE, NULL_TREE); ;
  3937.     break;}
  3938. case 322:
  3939. #line 1853 "cplus-parse.y"
  3940. { error ("missing ';' before right brace");
  3941.           yyungetc ('}', 0);
  3942.           yyval.ttype = grokfield (yyvsp[-2].ttype, NULL_TREE, yyvsp[-1].ttype, NULL_TREE, NULL_TREE); ;
  3943.     break;}
  3944. case 323:
  3945. #line 1860 "cplus-parse.y"
  3946. { yyval.ttype = NULL_TREE; ;
  3947.     break;}
  3948. case 325:
  3949. #line 1863 "cplus-parse.y"
  3950. {
  3951.           /* In this context, void_type_node encodes
  3952.              friends.  They have been recorded elsewhere.  */
  3953.           if (yyvsp[-2].ttype == void_type_node)
  3954.             yyval.ttype = yyvsp[0].ttype;
  3955.           else
  3956.             yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype);
  3957.         ;
  3958.     break;}
  3959. case 326:
  3960. #line 1875 "cplus-parse.y"
  3961. { current_declspecs = yyvsp[-4].ttype;
  3962.           yyval.ttype = grokfield (yyvsp[-3].ttype, current_declspecs, yyvsp[-2].ttype, yyvsp[0].ttype, yyvsp[-1].ttype); ;
  3963.     break;}
  3964. case 327:
  3965. #line 1878 "cplus-parse.y"
  3966. { current_declspecs = yyvsp[-3].ttype;
  3967.           yyval.ttype = grokbitfield (yyvsp[-2].ttype, current_declspecs, yyvsp[0].ttype); ;
  3968.     break;}
  3969. case 328:
  3970. #line 1881 "cplus-parse.y"
  3971. { current_declspecs = yyvsp[-2].ttype;
  3972.           yyval.ttype = grokbitfield (yyvsp[-1].ttype, current_declspecs, yyvsp[0].ttype); ;
  3973.     break;}
  3974. case 329:
  3975. #line 1884 "cplus-parse.y"
  3976. { yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ;
  3977.     break;}
  3978. case 330:
  3979. #line 1889 "cplus-parse.y"
  3980. { yyval.ttype = grokfield (yyvsp[-3].ttype, current_declspecs, yyvsp[-2].ttype, yyvsp[0].ttype, yyvsp[-1].ttype); ;
  3981.     break;}
  3982. case 331:
  3983. #line 1891 "cplus-parse.y"
  3984. { yyval.ttype = grokbitfield (yyvsp[-2].ttype, current_declspecs, yyvsp[0].ttype); ;
  3985.     break;}
  3986. case 332:
  3987. #line 1893 "cplus-parse.y"
  3988. { yyval.ttype = grokbitfield (yyvsp[-1].ttype, current_declspecs, yyvsp[0].ttype); ;
  3989.     break;}
  3990. case 333:
  3991. #line 1895 "cplus-parse.y"
  3992. { yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ;
  3993.     break;}
  3994. case 335:
  3995. #line 1905 "cplus-parse.y"
  3996. { TREE_CHAIN (yyvsp[0].ttype) = yyvsp[-2].ttype; yyval.ttype = yyvsp[0].ttype; ;
  3997.     break;}
  3998. case 336:
  3999. #line 1910 "cplus-parse.y"
  4000. { yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ;
  4001.     break;}
  4002. case 337:
  4003. #line 1912 "cplus-parse.y"
  4004. { yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ;
  4005.     break;}
  4006. case 338:
  4007. #line 1917 "cplus-parse.y"
  4008. { yyval.ttype = build_decl_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  4009.     break;}
  4010. case 339:
  4011. #line 1919 "cplus-parse.y"
  4012. { yyval.ttype = build_decl_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  4013.     break;}
  4014. case 340:
  4015. #line 1924 "cplus-parse.y"
  4016. { yyval.ttype = NULL_TREE; ;
  4017.     break;}
  4018. case 342:
  4019. #line 1930 "cplus-parse.y"
  4020. { yyval.ttype = build_decl_list (NULL_TREE, yyvsp[0].ttype); ;
  4021.     break;}
  4022. case 343:
  4023. #line 1932 "cplus-parse.y"
  4024. { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
  4025.     break;}
  4026. case 344:
  4027. #line 1937 "cplus-parse.y"
  4028. { yyval.ttype = NULL_TREE; ;
  4029.     break;}
  4030. case 345:
  4031. #line 1939 "cplus-parse.y"
  4032. { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
  4033.     break;}
  4034. case 346:
  4035. #line 1947 "cplus-parse.y"
  4036. { yyval.itype = suspend_momentary (); ;
  4037.     break;}
  4038. case 347:
  4039. #line 1948 "cplus-parse.y"
  4040. { resume_momentary (yyvsp[-1].itype); yyval.ttype = yyvsp[0].ttype; ;
  4041.     break;}
  4042. case 348:
  4043. #line 1954 "cplus-parse.y"
  4044. { yyval.ttype = build_parse_node (CALL_EXPR, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  4045.     break;}
  4046. case 349:
  4047. #line 1956 "cplus-parse.y"
  4048. { yyval.ttype = build_parse_node (CALL_EXPR, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  4049.     break;}
  4050. case 350:
  4051. #line 1958 "cplus-parse.y"
  4052. { yyval.ttype = build_parse_node (CALL_EXPR, yyvsp[-2].ttype, empty_parms (), yyvsp[0].ttype); ;
  4053.     break;}
  4054. case 351:
  4055. #line 1960 "cplus-parse.y"
  4056. { yyval.ttype = build_parse_node (CALL_EXPR, yyvsp[-4].ttype, NULL_TREE, NULL_TREE); ;
  4057.     break;}
  4058. case 352:
  4059. #line 1962 "cplus-parse.y"
  4060. { yyval.ttype = build_parse_node (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
  4061.     break;}
  4062. case 353:
  4063. #line 1964 "cplus-parse.y"
  4064. { yyval.ttype = build_parse_node (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
  4065.     break;}
  4066. case 354:
  4067. #line 1966 "cplus-parse.y"
  4068. { yyval.ttype = yyvsp[-1].ttype; ;
  4069.     break;}
  4070. case 355:
  4071. #line 1968 "cplus-parse.y"
  4072. { yyval.ttype = make_pointer_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
  4073.     break;}
  4074. case 356:
  4075. #line 1970 "cplus-parse.y"
  4076. { yyval.ttype = yyvsp[0].ttype;
  4077.           see_typename (); ;
  4078.     break;}
  4079. case 357:
  4080. #line 1973 "cplus-parse.y"
  4081. { yyval.ttype = yyvsp[0].ttype;
  4082.           see_typename (); ;
  4083.     break;}
  4084. case 358:
  4085. #line 1976 "cplus-parse.y"
  4086. { yyval.ttype = yyvsp[0].ttype;
  4087.           see_typename (); ;
  4088.     break;}
  4089. case 359:
  4090. #line 1979 "cplus-parse.y"
  4091. { yyval.ttype = make_reference_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
  4092.     break;}
  4093. case 360:
  4094. #line 1981 "cplus-parse.y"
  4095. { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  4096.     break;}
  4097. case 361:
  4098. #line 1983 "cplus-parse.y"
  4099. { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  4100.     break;}
  4101. case 363:
  4102. #line 1989 "cplus-parse.y"
  4103. { yyval.ttype = build_parse_node (CALL_EXPR, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  4104.     break;}
  4105. case 364:
  4106. #line 1991 "cplus-parse.y"
  4107. { yyval.ttype = build_parse_node (CALL_EXPR, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  4108.     break;}
  4109. case 365:
  4110. #line 1993 "cplus-parse.y"
  4111. { yyval.ttype = build_parse_node (CALL_EXPR, yyvsp[-2].ttype, empty_parms (), yyvsp[0].ttype); ;
  4112.     break;}
  4113. case 366:
  4114. #line 1995 "cplus-parse.y"
  4115. { yyval.ttype = build_parse_node (CALL_EXPR, yyvsp[-4].ttype, NULL_TREE, NULL_TREE); ;
  4116.     break;}
  4117. case 367:
  4118. #line 1997 "cplus-parse.y"
  4119. { yyval.ttype = build_parse_node (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
  4120.     break;}
  4121. case 368:
  4122. #line 1999 "cplus-parse.y"
  4123. { yyval.ttype = build_parse_node (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
  4124.     break;}
  4125. case 369:
  4126. #line 2001 "cplus-parse.y"
  4127. { yyval.ttype = yyvsp[-1].ttype; ;
  4128.     break;}
  4129. case 370:
  4130. #line 2003 "cplus-parse.y"
  4131. { yyval.ttype = yyvsp[0].ttype;
  4132.           see_typename (); ;
  4133.     break;}
  4134. case 371:
  4135. #line 2006 "cplus-parse.y"
  4136. { yyval.ttype = yyvsp[0].ttype;
  4137.           see_typename (); ;
  4138.     break;}
  4139. case 372:
  4140. #line 2009 "cplus-parse.y"
  4141. { yyval.ttype = yyvsp[0].ttype;
  4142.           see_typename (); ;
  4143.     break;}
  4144. case 373:
  4145. #line 2012 "cplus-parse.y"
  4146. { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  4147.     break;}
  4148. case 374:
  4149. #line 2014 "cplus-parse.y"
  4150. { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  4151.     break;}
  4152. case 375:
  4153. #line 2022 "cplus-parse.y"
  4154. { yyval.ttype = build_parse_node (CALL_EXPR, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  4155.     break;}
  4156. case 376:
  4157. #line 2024 "cplus-parse.y"
  4158. { yyval.ttype = build_parse_node (CALL_EXPR, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  4159.     break;}
  4160. case 377:
  4161. #line 2026 "cplus-parse.y"
  4162. { yyval.ttype = build_parse_node (CALL_EXPR, yyvsp[-2].ttype, empty_parms (), yyvsp[0].ttype); ;
  4163.     break;}
  4164. case 378:
  4165. #line 2028 "cplus-parse.y"
  4166. { yyval.ttype = build_parse_node (CALL_EXPR, yyvsp[-4].ttype, NULL_TREE, NULL_TREE); ;
  4167.     break;}
  4168. case 379:
  4169. #line 2030 "cplus-parse.y"
  4170. { yyval.ttype = yyvsp[-1].ttype; ;
  4171.     break;}
  4172. case 380:
  4173. #line 2032 "cplus-parse.y"
  4174. { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  4175.     break;}
  4176. case 381:
  4177. #line 2034 "cplus-parse.y"
  4178. { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  4179.     break;}
  4180. case 382:
  4181. #line 2036 "cplus-parse.y"
  4182. { yyval.ttype = build_parse_node (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
  4183.     break;}
  4184. case 383:
  4185. #line 2038 "cplus-parse.y"
  4186. { yyval.ttype = build_parse_node (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
  4187.     break;}
  4188. case 384:
  4189. #line 2040 "cplus-parse.y"
  4190. { see_typename (); ;
  4191.     break;}
  4192. case 385:
  4193. #line 2044 "cplus-parse.y"
  4194. { see_typename (); ;
  4195.     break;}
  4196. case 386:
  4197. #line 2047 "cplus-parse.y"
  4198. { see_typename ();
  4199.           yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype); ;
  4200.     break;}
  4201. case 387:
  4202. #line 2050 "cplus-parse.y"
  4203. { see_typename ();
  4204.           yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype); ;
  4205.     break;}
  4206. case 388:
  4207. #line 2053 "cplus-parse.y"
  4208. {
  4209.           see_typename ();
  4210.           yyval.ttype = build_parse_node (WRAPPER_EXPR, yyvsp[0].ttype);
  4211.         ;
  4212.     break;}
  4213. case 389:
  4214. #line 2058 "cplus-parse.y"
  4215. {
  4216.           see_typename ();
  4217.           yyval.ttype = build_parse_node (WRAPPER_EXPR,
  4218.                  build_parse_node (COND_EXPR, yyvsp[0].ttype, NULL_TREE, NULL_TREE));
  4219.         ;
  4220.     break;}
  4221. case 390:
  4222. #line 2064 "cplus-parse.y"
  4223. { see_typename ();
  4224.           yyval.ttype = build_parse_node (ANTI_WRAPPER_EXPR, yyvsp[0].ttype); ;
  4225.     break;}
  4226. case 391:
  4227. #line 2067 "cplus-parse.y"
  4228. { see_typename ();
  4229.           yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  4230.     break;}
  4231. case 392:
  4232. #line 2070 "cplus-parse.y"
  4233. { yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
  4234.     break;}
  4235. case 393:
  4236. #line 2072 "cplus-parse.y"
  4237. { yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-6].ttype,
  4238.                  build_parse_node (CALL_EXPR, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype)); ;
  4239.     break;}
  4240. case 394:
  4241. #line 2075 "cplus-parse.y"
  4242. { yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-6].ttype,
  4243.                  build_parse_node (CALL_EXPR, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype)); ;
  4244.     break;}
  4245. case 395:
  4246. #line 2078 "cplus-parse.y"
  4247. { yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-4].ttype,
  4248.                  build_parse_node (CALL_EXPR, yyvsp[-2].ttype, empty_parms (), yyvsp[0].ttype)); ;
  4249.     break;}
  4250. case 396:
  4251. #line 2081 "cplus-parse.y"
  4252. { yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-6].ttype, build_parse_node (CALL_EXPR, yyvsp[-4].ttype, NULL_TREE, NULL_TREE)); ;
  4253.     break;}
  4254. case 397:
  4255. #line 2083 "cplus-parse.y"
  4256. { yyval.ttype = build_parse_node (SCOPE_REF, NULL_TREE, yyvsp[0].ttype); ;
  4257.     break;}
  4258. case 400:
  4259. #line 2090 "cplus-parse.y"
  4260. { yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
  4261.     break;}
  4262. case 401:
  4263. #line 2095 "cplus-parse.y"
  4264. { see_typename ();
  4265.           yyval.ttype = yyvsp[-1].ttype; ;
  4266.     break;}
  4267. case 402:
  4268. #line 2099 "cplus-parse.y"
  4269. { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  4270.     break;}
  4271. case 403:
  4272. #line 2101 "cplus-parse.y"
  4273. { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
  4274.     break;}
  4275. case 404:
  4276. #line 2103 "cplus-parse.y"
  4277. { yyval.ttype = yyvsp[0].ttype;
  4278.           see_typename (); ;
  4279.     break;}
  4280. case 405:
  4281. #line 2106 "cplus-parse.y"
  4282. { yyval.ttype = yyvsp[0].ttype;
  4283.           see_typename (); ;
  4284.     break;}
  4285. case 406:
  4286. #line 2109 "cplus-parse.y"
  4287. { yyval.ttype = yyvsp[0].ttype;
  4288.           see_typename (); ;
  4289.     break;}
  4290. case 407:
  4291. #line 2112 "cplus-parse.y"
  4292. { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  4293.     break;}
  4294. case 408:
  4295. #line 2114 "cplus-parse.y"
  4296. { yyval.ttype = make_reference_declarator (yyvsp[0].ttype, NULL_TREE); ;
  4297.     break;}
  4298. case 409:
  4299. #line 2116 "cplus-parse.y"
  4300. { yyval.ttype = build_parse_node (CALL_EXPR, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  4301.     break;}
  4302. case 410:
  4303. #line 2118 "cplus-parse.y"
  4304. { yyval.ttype = build_parse_node (CALL_EXPR, yyvsp[-2].ttype, empty_parms (), yyvsp[0].ttype); ;
  4305.     break;}
  4306. case 411:
  4307. #line 2120 "cplus-parse.y"
  4308. { yyval.ttype = build_parse_node (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
  4309.     break;}
  4310. case 412:
  4311. #line 2122 "cplus-parse.y"
  4312. { yyval.ttype = build_parse_node (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
  4313.     break;}
  4314. case 413:
  4315. #line 2124 "cplus-parse.y"
  4316. { yyval.ttype = build_parse_node (CALL_EXPR, NULL_TREE, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  4317.     break;}
  4318. case 414:
  4319. #line 2126 "cplus-parse.y"
  4320. { yyval.ttype = build_parse_node (CALL_EXPR, NULL_TREE, empty_parms (), yyvsp[0].ttype); ;
  4321.     break;}
  4322. case 415:
  4323. #line 2128 "cplus-parse.y"
  4324. { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
  4325.     break;}
  4326. case 416:
  4327. #line 2130 "cplus-parse.y"
  4328. { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, NULL_TREE); ;
  4329.     break;}
  4330. case 417:
  4331. #line 2132 "cplus-parse.y"
  4332. { yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  4333.     break;}
  4334. case 418:
  4335. #line 2134 "cplus-parse.y"
  4336. { yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-3].ttype, yyvsp[0].ttype); ;
  4337.     break;}
  4338. case 419:
  4339. #line 2136 "cplus-parse.y"
  4340. { yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, 0); ;
  4341.     break;}
  4342. case 420:
  4343. #line 2138 "cplus-parse.y"
  4344. { yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, 0); ;
  4345.     break;}
  4346. case 425:
  4347. #line 2159 "cplus-parse.y"
  4348. {
  4349.           pushlevel (0);
  4350.           clear_last_expr ();
  4351.           push_momentary ();
  4352.           expand_start_bindings (0);
  4353.           stmt_decl_msg = 0;
  4354.         ;
  4355.     break;}
  4356. case 426:
  4357. #line 2172 "cplus-parse.y"
  4358. {;
  4359.     break;}
  4360. case 428:
  4361. #line 2177 "cplus-parse.y"
  4362. { yyval.ttype = 0; ;
  4363.     break;}
  4364. case 429:
  4365. #line 2179 "cplus-parse.y"
  4366. { tree decls;
  4367.  
  4368.           pop_implicit_try_blocks (NULL_TREE);
  4369.           decls = getdecls ();
  4370.           expand_end_bindings (decls, decls != 0, 1);
  4371.           yyval.ttype = poplevel (decls != 0, 1, 0);
  4372.           pop_momentary (); ;
  4373.     break;}
  4374. case 430:
  4375. #line 2187 "cplus-parse.y"
  4376. { pop_implicit_try_blocks (NULL_TREE);
  4377.           expand_end_bindings (getdecls (), 0, 1);
  4378.           yyval.ttype = poplevel (0, 0, 0);
  4379.           pop_momentary (); ;
  4380.     break;}
  4381. case 431:
  4382. #line 2195 "cplus-parse.y"
  4383. { emit_line_note (input_filename, lineno);
  4384.           expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0);
  4385.           stmt_decl_msg = "if"; ;
  4386.     break;}
  4387. case 432:
  4388. #line 2199 "cplus-parse.y"
  4389. { stmt_decl_msg = 0; ;
  4390.     break;}
  4391. case 433:
  4392. #line 2204 "cplus-parse.y"
  4393. { finish_stmt (); ;
  4394.     break;}
  4395. case 434:
  4396. #line 2206 "cplus-parse.y"
  4397. { if (stmt_decl_msg)
  4398.             error ("declaration after %s invalid", stmt_decl_msg);
  4399.           stmt_decl_msg = 0;
  4400.           finish_stmt (); ;
  4401.     break;}
  4402. case 435:
  4403. #line 2211 "cplus-parse.y"
  4404. { emit_line_note (input_filename, lineno);
  4405.           /* Do default conversion if safe and possibly important,
  4406.              in case within ({...}).  */
  4407.           if ((TREE_CODE (TREE_TYPE (yyvsp[-1].ttype)) == ARRAY_TYPE
  4408.                && lvalue_p (yyvsp[-1].ttype))
  4409.               || TREE_CODE (TREE_TYPE (yyvsp[-1].ttype)) == FUNCTION_TYPE)
  4410.             yyvsp[-1].ttype = default_conversion (yyvsp[-1].ttype);
  4411.           expand_cplus_expr_stmt (yyvsp[-1].ttype);
  4412.           clear_momentary ();
  4413.           finish_stmt (); ;
  4414.     break;}
  4415. case 436:
  4416. #line 2222 "cplus-parse.y"
  4417. { expand_start_else ();
  4418.           stmt_decl_msg = "else"; ;
  4419.     break;}
  4420. case 437:
  4421. #line 2225 "cplus-parse.y"
  4422. { expand_end_else ();
  4423.           stmt_decl_msg = 0;
  4424.           finish_stmt (); ;
  4425.     break;}
  4426. case 438:
  4427. #line 2229 "cplus-parse.y"
  4428. { expand_end_cond ();
  4429.           stmt_decl_msg = 0;
  4430.           finish_stmt (); ;
  4431.     break;}
  4432. case 439:
  4433. #line 2233 "cplus-parse.y"
  4434. { emit_nop ();
  4435.           emit_line_note (input_filename, lineno);
  4436.           expand_start_loop (1); ;
  4437.     break;}
  4438. case 440:
  4439. #line 2237 "cplus-parse.y"
  4440. { expand_exit_loop_if_false (truthvalue_conversion (yyvsp[-1].ttype));
  4441.           stmt_decl_msg = "while"; ;
  4442.     break;}
  4443. case 441:
  4444. #line 2240 "cplus-parse.y"
  4445.           expand_end_loop ();
  4446.           stmt_decl_msg = 0;
  4447.           finish_stmt (); ;
  4448.     break;}
  4449. case 442:
  4450. #line 2245 "cplus-parse.y"
  4451. { emit_nop ();
  4452.           emit_line_note (input_filename, lineno);
  4453.           expand_start_loop_continue_elsewhere (1);
  4454.           stmt_decl_msg = "do"; ;
  4455.     break;}
  4456. case 443:
  4457. #line 2250 "cplus-parse.y"
  4458. { stmt_decl_msg = 0;
  4459.           expand_loop_continue_here (); ;
  4460.     break;}
  4461. case 444:
  4462. #line 2253 "cplus-parse.y"
  4463. { emit_line_note (input_filename, lineno);
  4464.           expand_exit_loop_if_false (truthvalue_conversion (yyvsp[-2].ttype));
  4465.           expand_end_loop ();
  4466.           clear_momentary ();
  4467.           finish_stmt (); ;
  4468.     break;}
  4469. case 445:
  4470. #line 2259 "cplus-parse.y"
  4471. { emit_nop ();
  4472.           emit_line_note (input_filename, lineno);
  4473.           if (yyvsp[0].ttype) expand_cplus_expr_stmt (yyvsp[0].ttype);
  4474.           expand_start_loop_continue_elsewhere (1); ;
  4475.     break;}
  4476. case 446:
  4477. #line 2264 "cplus-parse.y"
  4478. { emit_line_note (input_filename, lineno);
  4479.           if (yyvsp[-1].ttype) expand_exit_loop_if_false (truthvalue_conversion (yyvsp[-1].ttype)); ;
  4480.     break;}
  4481. case 447:
  4482. #line 2269 "cplus-parse.y"
  4483. { push_momentary ();
  4484.           stmt_decl_msg = "for"; ;
  4485.     break;}
  4486. case 448:
  4487. #line 2272 "cplus-parse.y"
  4488. { emit_line_note (input_filename, lineno);
  4489.           expand_loop_continue_here ();
  4490.           if (yyvsp[-3].ttype) expand_cplus_expr_stmt (yyvsp[-3].ttype);
  4491.           pop_momentary ();
  4492.           expand_end_loop ();
  4493.           stmt_decl_msg = 0;
  4494.           finish_stmt (); ;
  4495.     break;}
  4496. case 449:
  4497. #line 2280 "cplus-parse.y"
  4498. { emit_nop ();
  4499.           emit_line_note (input_filename, lineno);
  4500.           expand_start_loop_continue_elsewhere (1); ;
  4501.     break;}
  4502. case 450:
  4503. #line 2284 "cplus-parse.y"
  4504. { emit_line_note (input_filename, lineno);
  4505.           if (yyvsp[-1].ttype) expand_exit_loop_if_false (truthvalue_conversion (yyvsp[-1].ttype)); ;
  4506.     break;}
  4507. case 451:
  4508. #line 2289 "cplus-parse.y"
  4509. { push_momentary ();
  4510.           stmt_decl_msg = "for";
  4511.           yyvsp[0].itype = lineno; ;
  4512.     break;}
  4513. case 452:
  4514. #line 2293 "cplus-parse.y"
  4515. { emit_line_note (input_filename, yyvsp[-2].itype);
  4516.           expand_loop_continue_here ();
  4517.           if (yyvsp[-3].ttype) expand_cplus_expr_stmt (yyvsp[-3].ttype);
  4518.           pop_momentary ();
  4519.           expand_end_loop ();
  4520.           pop_implicit_try_blocks (NULL_TREE);
  4521.           if (yyvsp[-8].itype)
  4522.             {
  4523.               register keep = yyvsp[-8].itype > 0;
  4524.               if (keep) expand_end_bindings (0, keep, 1);
  4525.               poplevel (keep, 1, 0);
  4526.               pop_momentary ();
  4527.             }
  4528.           stmt_decl_msg = 0;
  4529.           finish_stmt ();
  4530.         ;
  4531.     break;}
  4532. case 453:
  4533. #line 2310 "cplus-parse.y"
  4534. { emit_line_note (input_filename, lineno);
  4535.           c_expand_start_case (yyvsp[-1].ttype);
  4536.           /* Don't let the tree nodes for $3 be discarded by
  4537.              clear_momentary during the parsing of the next stmt.  */
  4538.           push_momentary ();
  4539.           stmt_decl_msg = "switch"; ;
  4540.     break;}
  4541. case 454:
  4542. #line 2317 "cplus-parse.y"
  4543. { expand_end_case (yyvsp[-3].ttype);
  4544.           pop_momentary ();
  4545.           stmt_decl_msg = 0;
  4546.           finish_stmt (); ;
  4547.     break;}
  4548. case 455:
  4549. #line 2322 "cplus-parse.y"
  4550. { register tree value = yyvsp[-1].ttype;
  4551.           register tree label
  4552.             = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
  4553.  
  4554.           /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
  4555.              Strip such NOP_EXPRs.  */
  4556.           if (TREE_CODE (value) == NOP_EXPR
  4557.               && TREE_TYPE (value) == TREE_TYPE (TREE_OPERAND (value, 0)))
  4558.             value = TREE_OPERAND (value, 0);
  4559.  
  4560.           if (TREE_READONLY (value) && TREE_CODE (value) == VAR_DECL)
  4561.             {
  4562.               value = decl_constant_value (value);
  4563.               /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
  4564.              Strip such NOP_EXPRs.  */
  4565.               if (TREE_CODE (value) == NOP_EXPR
  4566.               && TREE_TYPE (value) == TREE_TYPE (TREE_OPERAND (value, 0)))
  4567.             value = TREE_OPERAND (value, 0);
  4568.             }
  4569.           value = fold (value);
  4570.  
  4571.           if (TREE_CODE (value) != INTEGER_CST
  4572.               && value != error_mark_node)
  4573.             {
  4574.               error ("case label does not reduce to an integer constant");
  4575.               value = error_mark_node;
  4576.             }
  4577.           else
  4578.             /* Promote char or short to int.  */
  4579.             value = default_conversion (value);
  4580.           if (value != error_mark_node)
  4581.             {
  4582.               int success = pushcase (value, label);
  4583.               if (success == 1)
  4584.             error ("case label not within a switch statement");
  4585.               else if (success == 2)
  4586.             error ("duplicate case value");
  4587.               else if (success == 3)
  4588.             warning ("case value out of range");
  4589.             }
  4590.           define_case_label (label);
  4591.         ;
  4592.     break;}
  4593. case 457:
  4594. #line 2366 "cplus-parse.y"
  4595. { register tree value1 = yyvsp[-3].ttype;
  4596.           register tree value2 = yyvsp[-1].ttype;
  4597.           register tree label
  4598.             = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
  4599.  
  4600.           if (pedantic)
  4601.             {
  4602.               error ("ANSI C does not allow range expressions in switch statement");
  4603.               value1 = error_mark_node;
  4604.               value2 = error_mark_node;
  4605.               break;
  4606.             }
  4607.           /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
  4608.              Strip such NOP_EXPRs.  */
  4609.           if (TREE_CODE (value1) == NOP_EXPR
  4610.               && TREE_TYPE (value1) == TREE_TYPE (TREE_OPERAND (value1, 0)))
  4611.             value1 = TREE_OPERAND (value1, 0);
  4612.  
  4613.           if (TREE_READONLY (value1) && TREE_CODE (value1) == VAR_DECL)
  4614.             {
  4615.               value1 = decl_constant_value (value1);
  4616.               /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
  4617.              Strip such NOP_EXPRs.  */
  4618.               if (TREE_CODE (value1) == NOP_EXPR
  4619.               && TREE_TYPE (value1) == TREE_TYPE (TREE_OPERAND (value1, 0)))
  4620.             value1 = TREE_OPERAND (value1, 0);
  4621.             }
  4622.           value1 = fold (value1);
  4623.  
  4624.           /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
  4625.              Strip such NOP_EXPRs.  */
  4626.           if (TREE_CODE (value2) == NOP_EXPR
  4627.               && TREE_TYPE (value2) == TREE_TYPE (TREE_OPERAND (value2, 0)))
  4628.             value2 = TREE_OPERAND (value2, 0);
  4629.  
  4630.           if (TREE_READONLY (value2) && TREE_CODE (value2) == VAR_DECL)
  4631.             {
  4632.               value2 = decl_constant_value (value2);
  4633.               /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
  4634.              Strip such NOP_EXPRs.  */
  4635.               if (TREE_CODE (value2) == NOP_EXPR
  4636.               && TREE_TYPE (value2) == TREE_TYPE (TREE_OPERAND (value2, 0)))
  4637.             value2 = TREE_OPERAND (value2, 0);
  4638.             }
  4639.           value2 = fold (value2);
  4640.  
  4641.  
  4642.           if (TREE_CODE (value1) != INTEGER_CST
  4643.               && value1 != error_mark_node)
  4644.             {
  4645.               error ("case label does not reduce to an integer constant");
  4646.               value1 = error_mark_node;
  4647.             }
  4648.           if (TREE_CODE (value2) != INTEGER_CST
  4649.               && value2 != error_mark_node)
  4650.             {
  4651.               error ("case label does not reduce to an integer constant");
  4652.               value2 = error_mark_node;
  4653.             }
  4654.           if (value1 != error_mark_node
  4655.               && value2 != error_mark_node)
  4656.             {
  4657.               int success = pushcase_range (value1, value2, label);
  4658.               if (success == 1)
  4659.             error ("case label not within a switch statement");
  4660.               else if (success == 2)
  4661.             error ("duplicate (or overlapping) case value");
  4662.               else if (success == 3)
  4663.             warning ("case value out of range");
  4664.               else if (success == 4)
  4665.             warning ("empty range specified");
  4666.             }
  4667.           define_case_label (label);
  4668.         ;
  4669.     break;}
  4670. case 459:
  4671. #line 2442 "cplus-parse.y"
  4672. {
  4673.           register tree label
  4674.             = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
  4675.           int success = pushcase (NULL_TREE, label);
  4676.           if (success == 1)
  4677.             error ("default label not within a switch statement");
  4678.           else if (success == 2)
  4679.             error ("multiple default labels in one switch");
  4680.         ;
  4681.     break;}
  4682. case 461:
  4683. #line 2453 "cplus-parse.y"
  4684. { emit_line_note (input_filename, lineno);
  4685.           if ( ! expand_exit_something ())
  4686.             error ("break statement not within loop or switch"); ;
  4687.     break;}
  4688. case 462:
  4689. #line 2457 "cplus-parse.y"
  4690. { emit_line_note (input_filename, lineno);
  4691.           if (! expand_continue_loop ())
  4692.             error ("continue statement not within a loop"); ;
  4693.     break;}
  4694. case 463:
  4695. #line 2461 "cplus-parse.y"
  4696. { emit_line_note (input_filename, lineno);
  4697.           c_expand_return (NULL_TREE); ;
  4698.     break;}
  4699. case 464:
  4700. #line 2464 "cplus-parse.y"
  4701. { emit_line_note (input_filename, lineno);
  4702.           c_expand_return (yyvsp[-1].ttype);
  4703.           finish_stmt ();
  4704.         ;
  4705.     break;}
  4706. case 465:
  4707. #line 2469 "cplus-parse.y"
  4708. { if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
  4709.           emit_line_note (input_filename, lineno);
  4710.           expand_asm (yyvsp[-2].ttype);
  4711.           finish_stmt ();
  4712.         ;
  4713.     break;}
  4714. case 466:
  4715. #line 2476 "cplus-parse.y"
  4716. { if (TREE_CHAIN (yyvsp[-4].ttype)) yyvsp[-4].ttype = combine_strings (yyvsp[-4].ttype);
  4717.           emit_line_note (input_filename, lineno);
  4718.           c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
  4719.                      yyvsp[-6].ttype == ridpointers[(int)RID_VOLATILE],
  4720.                      input_filename, lineno);
  4721.           finish_stmt ();
  4722.         ;
  4723.     break;}
  4724. case 467:
  4725. #line 2485 "cplus-parse.y"
  4726. { if (TREE_CHAIN (yyvsp[-6].ttype)) yyvsp[-6].ttype = combine_strings (yyvsp[-6].ttype);
  4727.           emit_line_note (input_filename, lineno);
  4728.           c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
  4729.                      yyvsp[-8].ttype == ridpointers[(int)RID_VOLATILE],
  4730.                      input_filename, lineno);
  4731.           finish_stmt ();
  4732.         ;
  4733.     break;}
  4734. case 468:
  4735. #line 2495 "cplus-parse.y"
  4736. { if (TREE_CHAIN (yyvsp[-8].ttype)) yyvsp[-8].ttype = combine_strings (yyvsp[-8].ttype);
  4737.           emit_line_note (input_filename, lineno);
  4738.           c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
  4739.                      yyvsp[-10].ttype == ridpointers[(int)RID_VOLATILE],
  4740.                      input_filename, lineno);
  4741.           finish_stmt ();
  4742.         ;
  4743.     break;}
  4744. case 469:
  4745. #line 2503 "cplus-parse.y"
  4746. { tree decl;
  4747.           emit_line_note (input_filename, lineno);
  4748.           decl = lookup_label (yyvsp[-1].ttype);
  4749.           TREE_USED (decl) = 1;
  4750.           expand_goto (decl); ;
  4751.     break;}
  4752. case 470:
  4753. #line 2509 "cplus-parse.y"
  4754. { tree label = define_label (input_filename, lineno, yyvsp[-1].ttype);
  4755.           emit_nop ();
  4756.           if (label)
  4757.             expand_label (label); ;
  4758.     break;}
  4759. case 471:
  4760. #line 2514 "cplus-parse.y"
  4761. { finish_stmt (); ;
  4762.     break;}
  4763. case 472:
  4764. #line 2516 "cplus-parse.y"
  4765. { tree label = define_label (input_filename, lineno, yyvsp[0].ttype);
  4766.           if (label)
  4767.             expand_label (label); ;
  4768.     break;}
  4769. case 473:
  4770. #line 2520 "cplus-parse.y"
  4771. { finish_stmt (); ;
  4772.     break;}
  4773. case 474:
  4774. #line 2522 "cplus-parse.y"
  4775. { finish_stmt (); ;
  4776.     break;}
  4777. case 475:
  4778. #line 2526 "cplus-parse.y"
  4779. { expand_cplus_raise (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE);
  4780.           finish_stmt (); ;
  4781.     break;}
  4782. case 476:
  4783. #line 2529 "cplus-parse.y"
  4784. { expand_cplus_raise (yyvsp[-2].ttype, NULL_TREE, NULL_TREE);
  4785.           finish_stmt (); ;
  4786.     break;}
  4787. case 477:
  4788. #line 2532 "cplus-parse.y"
  4789. {
  4790.           tree decl = cplus_expand_end_try (yyvsp[-3].itype);
  4791.           yyvsp[-2].ttype = current_exception_type;
  4792.           yyvsp[0].ttype = current_exception_decl;
  4793.           yyval.ttype = current_exception_object;
  4794.           cplus_expand_start_except (yyvsp[-1].ttype, decl);
  4795.           pushlevel (0);
  4796.           clear_last_expr ();
  4797.           push_momentary ();
  4798.           expand_start_bindings (0);
  4799.           stmt_decl_msg = 0;
  4800.         ;
  4801.     break;}
  4802. case 478:
  4803. #line 2545 "cplus-parse.y"
  4804. {
  4805.           tree decls = getdecls ();
  4806.           /* If there is a default exception to handle,
  4807.              handle it here.  */
  4808.           if (yyvsp[-1].ttype)
  4809.             expand_expr (yyvsp[-1].ttype, 0, 0, 0);
  4810.           expand_end_bindings (decls, decls != 0, 1);
  4811.           poplevel (decls != 0, 1, 0);
  4812.           pop_momentary ();
  4813.           current_exception_type = yyvsp[-5].ttype;
  4814.           current_exception_decl = yyvsp[-3].ttype;
  4815.           current_exception_object = yyvsp[-2].ttype;
  4816.           cplus_expand_end_except (yyvsp[-1].ttype);
  4817.         ;
  4818.     break;}
  4819. case 479:
  4820. #line 2560 "cplus-parse.y"
  4821. { tree name = get_identifier ("(compiler error)");
  4822.           tree orig_ex_type = current_exception_type;
  4823.           tree orig_ex_decl = current_exception_decl;
  4824.           tree orig_ex_obj = current_exception_object;
  4825.           tree decl = cplus_expand_end_try (yyvsp[-2].itype), decls;
  4826.  
  4827.           /* Start hidden EXCEPT.  */
  4828.           cplus_expand_start_except (name, decl);
  4829.           pushlevel (0);
  4830.           clear_last_expr ();
  4831.           push_momentary ();
  4832.           expand_start_bindings (0);
  4833.           stmt_decl_msg = 0;
  4834.  
  4835.           /* This sets up the reraise.  */
  4836.           expand_cplus_reraise (yyvsp[0].ttype);
  4837.  
  4838.           decls = getdecls ();
  4839.           expand_end_bindings (decls, decls != 0, 1);
  4840.           poplevel (decls != 0, 1, 0);
  4841.           pop_momentary ();
  4842.           current_exception_type = orig_ex_type;
  4843.           current_exception_decl = orig_ex_decl;
  4844.           current_exception_object = orig_ex_obj;
  4845.           /* This will reraise for us.  */
  4846.           cplus_expand_end_except (error_mark_node);
  4847.           if (yychar == YYEMPTY)
  4848.             yychar = YYLEX;
  4849.           if (yychar != ';')
  4850.             error ("missing ';' after reraise statement");
  4851.         ;
  4852.     break;}
  4853. case 480:
  4854. #line 2592 "cplus-parse.y"
  4855. { yyerror ("`except' missing after `try' statement");
  4856.           /* Terminate the binding contour started by special
  4857.              code in `.pushlevel'.  Automagically pops off
  4858.              the conditional we started for `try' stmt.  */
  4859.           cplus_expand_end_try (yyvsp[0].itype);
  4860.           expand_end_bindings (0, 0, 1);
  4861.           poplevel (0, 0, 0);
  4862.           pop_momentary ();
  4863.           YYERROR; ;
  4864.     break;}
  4865. case 481:
  4866. #line 2604 "cplus-parse.y"
  4867. { yyval.itype = 0; ;
  4868.     break;}
  4869. case 482:
  4870. #line 2606 "cplus-parse.y"
  4871. {
  4872.           yyval.itype = 1;
  4873.           pop_implicit_try_blocks (NULL_TREE);
  4874.         ;
  4875.     break;}
  4876. case 483:
  4877. #line 2611 "cplus-parse.y"
  4878. {
  4879.           yyval.itype = 0;
  4880.           pop_implicit_try_blocks (NULL_TREE);
  4881.         ;
  4882.     break;}
  4883. case 484:
  4884. #line 2617 "cplus-parse.y"
  4885. { cplus_expand_start_try (0); ;
  4886.     break;}
  4887. case 486:
  4888. #line 2621 "cplus-parse.y"
  4889. { yyval.ttype = NULL_TREE; ;
  4890.     break;}
  4891. case 487:
  4892. #line 2623 "cplus-parse.y"
  4893. {
  4894.           tree type = lookup_exception_type (current_class_type, current_class_name, yyvsp[0].ttype);
  4895.           if (type == NULL_TREE)
  4896.             {
  4897.               error ("`%s' is not an exception type",
  4898.                  IDENTIFIER_POINTER (TREE_VALUE (yyvsp[0].ttype)));
  4899.               current_exception_type = NULL_TREE;
  4900.               TREE_TYPE (current_exception_object) = error_mark_node;
  4901.             }
  4902.           else
  4903.             {
  4904.               current_exception_type = type;
  4905.               /* In-place union.  */
  4906.               TREE_TYPE (current_exception_object) = type;
  4907.             }
  4908.           expand_cplus_start_catch (yyvsp[0].ttype);
  4909.         ;
  4910.     break;}
  4911. case 488:
  4912. #line 2641 "cplus-parse.y"
  4913. {
  4914.           expand_cplus_end_catch (0);
  4915.         ;
  4916.     break;}
  4917. case 489:
  4918. #line 2645 "cplus-parse.y"
  4919. {
  4920.           if (yyvsp[-1].ttype)
  4921.             error ("duplicate default in exception handler");
  4922.           current_exception_type = NULL_TREE;
  4923.           /* Takes it right out of scope.  */
  4924.           TREE_TYPE (current_exception_object) = error_mark_node;
  4925.  
  4926.           if (! expand_catch_default ())
  4927.             compiler_error ("default catch botch");
  4928.  
  4929.           /* The default exception is handled as the
  4930.              last in the chain of exceptions handled.  */
  4931.           do_pending_stack_adjust ();
  4932.           start_sequence ();
  4933.           yyvsp[-1].ttype = make_node (RTL_EXPR);
  4934.           TREE_TYPE (yyvsp[-1].ttype) = void_type_node;
  4935.         ;
  4936.     break;}
  4937. case 490:
  4938. #line 2663 "cplus-parse.y"
  4939. {
  4940.           do_pending_stack_adjust ();
  4941.           if (! expand_catch (NULL_TREE))
  4942.             compiler_error ("except nesting botch");
  4943.           if (! expand_escape_except ())
  4944.             compiler_error ("except nesting botch");
  4945.           RTL_EXPR_SEQUENCE (yyvsp[-3].ttype) = (struct rtx_def *)get_insns ();
  4946.           end_sequence ();
  4947.         ;
  4948.     break;}
  4949. case 491:
  4950. #line 2676 "cplus-parse.y"
  4951. { yyval.ttype = NULL_TREE; ;
  4952.     break;}
  4953. case 492:
  4954. #line 2678 "cplus-parse.y"
  4955. { yyval.ttype = yyvsp[-1].ttype; ;
  4956.     break;}
  4957. case 493:
  4958. #line 2680 "cplus-parse.y"
  4959. { yyval.ttype = NULL_TREE; ;
  4960.     break;}
  4961. case 494:
  4962. #line 2685 "cplus-parse.y"
  4963. { yyval.itype = 0; ;
  4964.     break;}
  4965. case 495:
  4966. #line 2687 "cplus-parse.y"
  4967. { yyval.itype = 0; ;
  4968.     break;}
  4969. case 496:
  4970. #line 2689 "cplus-parse.y"
  4971. { yyval.itype = 1; ;
  4972.     break;}
  4973. case 497:
  4974. #line 2691 "cplus-parse.y"
  4975. { yyval.itype = -1; ;
  4976.     break;}
  4977. case 498:
  4978. #line 2698 "cplus-parse.y"
  4979. { if (pedantic)
  4980.             warning ("ANSI C forbids use of `asm' keyword");
  4981.           emit_line_note (input_filename, lineno); ;
  4982.     break;}
  4983. case 499:
  4984. #line 2702 "cplus-parse.y"
  4985. { if (pedantic)
  4986.             warning ("ANSI C forbids use of `asm' keyword");
  4987.           emit_line_note (input_filename, lineno); ;
  4988.     break;}
  4989. case 500:
  4990. #line 2709 "cplus-parse.y"
  4991. { yyval.ttype = NULL_TREE; ;
  4992.     break;}
  4993. case 502:
  4994. #line 2712 "cplus-parse.y"
  4995. { yyval.ttype = NULL_TREE; ;
  4996.     break;}
  4997. case 503:
  4998. #line 2718 "cplus-parse.y"
  4999. { yyval.ttype = NULL_TREE; ;
  5000.     break;}
  5001. case 506:
  5002. #line 2725 "cplus-parse.y"
  5003. { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
  5004.     break;}
  5005. case 507:
  5006. #line 2730 "cplus-parse.y"
  5007. { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
  5008.     break;}
  5009. case 508:
  5010. #line 2735 "cplus-parse.y"
  5011. { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
  5012.     break;}
  5013. case 509:
  5014. #line 2737 "cplus-parse.y"
  5015. { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype); ;
  5016.     break;}
  5017. case 510:
  5018. #line 2746 "cplus-parse.y"
  5019. {
  5020.           if (strict_prototype)
  5021.             yyval.ttype = void_list_node;
  5022.           else
  5023.             yyval.ttype = NULL_TREE;
  5024.         ;
  5025.     break;}
  5026. case 511:
  5027. #line 2753 "cplus-parse.y"
  5028. {
  5029.           yyval.ttype = chainon (yyvsp[0].ttype, void_list_node);
  5030.           TREE_PARMLIST (yyval.ttype) = 1;
  5031.         ;
  5032.     break;}
  5033. case 512:
  5034. #line 2758 "cplus-parse.y"
  5035. {
  5036.           yyval.ttype = yyvsp[-2].ttype;
  5037.           TREE_PARMLIST (yyval.ttype) = 1;
  5038.         ;
  5039.     break;}
  5040. case 513:
  5041. #line 2764 "cplus-parse.y"
  5042. {
  5043.           yyval.ttype = yyvsp[-1].ttype;
  5044.           TREE_PARMLIST (yyval.ttype) = 1;
  5045.         ;
  5046.     break;}
  5047. case 514:
  5048. #line 2769 "cplus-parse.y"
  5049. {
  5050.           yyval.ttype = NULL_TREE;
  5051.         ;
  5052.     break;}
  5053. case 515:
  5054. #line 2773 "cplus-parse.y"
  5055. {
  5056.           yyval.ttype = yyvsp[0].ttype;
  5057.           TREE_PARMLIST (yyval.ttype) = 1;
  5058.         ;
  5059.     break;}
  5060. case 516:
  5061. #line 2778 "cplus-parse.y"
  5062. {
  5063.           yyval.ttype = yyvsp[-1].ttype;
  5064.           TREE_PARMLIST (yyval.ttype) = 1;
  5065.         ;
  5066.     break;}
  5067. case 517:
  5068. #line 2783 "cplus-parse.y"
  5069. {
  5070.           /* This helps us recover from really nasty
  5071.              parse errors, for example, a missing right
  5072.              parenthesis.  */
  5073.           yyerror ("possibly missing ')'");
  5074.           yyval.ttype = chainon (yyvsp[-1].ttype, void_list_node);
  5075.           TREE_PARMLIST (yyval.ttype) = 1;
  5076.           yyungetc (':', 0);
  5077.           yychar = ')';
  5078.         ;
  5079.     break;}
  5080. case 518:
  5081. #line 2798 "cplus-parse.y"
  5082. { yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ttype); ;
  5083.     break;}
  5084. case 519:
  5085. #line 2800 "cplus-parse.y"
  5086. { yyval.ttype = chainon (yyvsp[-3].ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-1].ttype)); ;
  5087.     break;}
  5088. case 520:
  5089. #line 2802 "cplus-parse.y"
  5090. { yyval.ttype = chainon (yyvsp[-3].ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-1].ttype)); ;
  5091.     break;}
  5092. case 521:
  5093. #line 2809 "cplus-parse.y"
  5094. { yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype);
  5095.           see_typename (); ;
  5096.     break;}
  5097. case 522:
  5098. #line 2812 "cplus-parse.y"
  5099. { yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype);
  5100.           see_typename (); ;
  5101.     break;}
  5102. case 523:
  5103. #line 2815 "cplus-parse.y"
  5104. { yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype);
  5105.           see_typename (); ;
  5106.     break;}
  5107. case 524:
  5108. #line 2818 "cplus-parse.y"
  5109. { yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype);
  5110.           see_typename (); ;
  5111.     break;}
  5112. case 525:
  5113. #line 2823 "cplus-parse.y"
  5114. { see_typename (); ;
  5115.     break;}
  5116. case 526:
  5117. #line 2827 "cplus-parse.y"
  5118. { dont_see_typename (); ;
  5119.     break;}
  5120. case 527:
  5121. #line 2832 "cplus-parse.y"
  5122. {
  5123.           warning ("type specifier omitted for parameter");
  5124.           yyval.ttype = build_tree_list (TREE_PURPOSE (TREE_VALUE (yyvsp[-3].ttype)), yyvsp[0].ttype);
  5125.         ;
  5126.     break;}
  5127. case 528:
  5128. #line 2837 "cplus-parse.y"
  5129. {
  5130.           warning ("type specifier omitted for parameter");
  5131.           yyval.ttype = build_tree_list (TREE_PURPOSE (TREE_VALUE (yyvsp[-3].ttype)), yyvsp[0].ttype);
  5132.         ;
  5133.     break;}
  5134. case 529:
  5135. #line 2846 "cplus-parse.y"
  5136. { yyval.ttype = NULL_TREE; ;
  5137.     break;}
  5138. case 530:
  5139. #line 2848 "cplus-parse.y"
  5140. { yyval.ttype = yyvsp[0].ttype; ;
  5141.     break;}
  5142. case 531:
  5143. #line 2853 "cplus-parse.y"
  5144. { yyval.ttype = NULL_TREE; ;
  5145.     break;}
  5146. case 532:
  5147. #line 2855 "cplus-parse.y"
  5148. { yyval.ttype = yyvsp[0].ttype; ;
  5149.     break;}
  5150. case 533:
  5151. #line 2860 "cplus-parse.y"
  5152. { yyval.ttype = void_list_node; ;
  5153.     break;}
  5154. case 534:
  5155. #line 2862 "cplus-parse.y"
  5156. { yyval.ttype = build_decl_list (NULL_TREE, yyvsp[0].ttype); ;
  5157.     break;}
  5158. case 535:
  5159. #line 2864 "cplus-parse.y"
  5160. { yyval.ttype = build_decl_list (NULL_TREE, yyvsp[0].ttype); ;
  5161.     break;}
  5162. case 536:
  5163. #line 2866 "cplus-parse.y"
  5164. { yyval.ttype = build_decl_list (void_type_node, yyvsp[0].ttype); ;
  5165.     break;}
  5166. case 537:
  5167. #line 2868 "cplus-parse.y"
  5168. { yyval.ttype = build_decl_list (void_type_node, yyvsp[0].ttype); ;
  5169.     break;}
  5170. case 538:
  5171. #line 2870 "cplus-parse.y"
  5172. { yyval.ttype = build_decl_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  5173.     break;}
  5174. case 539:
  5175. #line 2872 "cplus-parse.y"
  5176. { yyval.ttype = build_decl_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  5177.     break;}
  5178. case 541:
  5179. #line 2877 "cplus-parse.y"
  5180. {
  5181.             TREE_CHAIN (yyvsp[0].ttype) = yyvsp[-2].ttype;
  5182.           yyval.ttype = yyvsp[0].ttype;
  5183.         ;
  5184.     break;}
  5185. case 542:
  5186. #line 2885 "cplus-parse.y"
  5187. { yyval.ttype = build_opid (0, MULT_EXPR); ;
  5188.     break;}
  5189. case 543:
  5190. #line 2887 "cplus-parse.y"
  5191. { yyval.ttype = build_opid (0, TRUNC_DIV_EXPR); ;
  5192.     break;}
  5193. case 544:
  5194. #line 2889 "cplus-parse.y"
  5195. { yyval.ttype = build_opid (0, TRUNC_MOD_EXPR); ;
  5196.     break;}
  5197. case 545:
  5198. #line 2891 "cplus-parse.y"
  5199. { yyval.ttype = build_opid (0, PLUS_EXPR); ;
  5200.     break;}
  5201. case 546:
  5202. #line 2893 "cplus-parse.y"
  5203. { yyval.ttype = build_opid (0, MINUS_EXPR); ;
  5204.     break;}
  5205. case 547:
  5206. #line 2895 "cplus-parse.y"
  5207. { yyval.ttype = build_opid (0, BIT_AND_EXPR); ;
  5208.     break;}
  5209. case 548:
  5210. #line 2897 "cplus-parse.y"
  5211. { yyval.ttype = build_opid (0, BIT_IOR_EXPR); ;
  5212.     break;}
  5213. case 549:
  5214. #line 2899 "cplus-parse.y"
  5215. { yyval.ttype = build_opid (0, BIT_XOR_EXPR); ;
  5216.     break;}
  5217. case 550:
  5218. #line 2901 "cplus-parse.y"
  5219. { yyval.ttype = build_opid (0, BIT_NOT_EXPR); ;
  5220.     break;}
  5221. case 551:
  5222. #line 2903 "cplus-parse.y"
  5223. { yyval.ttype = build_opid (0, yyvsp[0].code); ;
  5224.     break;}
  5225. case 552:
  5226. #line 2905 "cplus-parse.y"
  5227. { yyval.ttype = build_opid (0, yyvsp[0].code); ;
  5228.     break;}
  5229. case 553:
  5230. #line 2907 "cplus-parse.y"
  5231. { yyval.ttype = build_opid (MODIFY_EXPR, yyvsp[0].code); ;
  5232.     break;}
  5233. case 554:
  5234. #line 2909 "cplus-parse.y"
  5235. {
  5236.           yyval.ttype = build_opid (MODIFY_EXPR, NOP_EXPR);
  5237.           if (current_class_type)
  5238.             {
  5239.               TYPE_HAS_ASSIGNMENT (current_class_type) = 1;
  5240.               TYPE_GETS_ASSIGNMENT (current_class_type) = 1;
  5241.             }
  5242.         ;
  5243.     break;}
  5244. case 555:
  5245. #line 2918 "cplus-parse.y"
  5246. { yyval.ttype = build_opid (0, yyvsp[0].code); ;
  5247.     break;}
  5248. case 556:
  5249. #line 2920 "cplus-parse.y"
  5250. { yyval.ttype = build_opid (0, yyvsp[0].code); ;
  5251.     break;}
  5252. case 557:
  5253. #line 2922 "cplus-parse.y"
  5254. { yyval.ttype = build_opid (0, POSTINCREMENT_EXPR); ;
  5255.     break;}
  5256. case 558:
  5257. #line 2924 "cplus-parse.y"
  5258. { yyval.ttype = build_opid (0, PREDECREMENT_EXPR); ;
  5259.     break;}
  5260. case 559:
  5261. #line 2926 "cplus-parse.y"
  5262. { yyval.ttype = build_opid (0, TRUTH_ANDIF_EXPR); ;
  5263.     break;}
  5264. case 560:
  5265. #line 2928 "cplus-parse.y"
  5266. { yyval.ttype = build_opid (0, TRUTH_ORIF_EXPR); ;
  5267.     break;}
  5268. case 561:
  5269. #line 2930 "cplus-parse.y"
  5270. { yyval.ttype = build_opid (0, TRUTH_NOT_EXPR); ;
  5271.     break;}
  5272. case 562:
  5273. #line 2932 "cplus-parse.y"
  5274. { yyval.ttype = build_opid (0, COND_EXPR); ;
  5275.     break;}
  5276. case 563:
  5277. #line 2934 "cplus-parse.y"
  5278. { yyval.ttype = build_opid (0, yyvsp[0].code); ;
  5279.     break;}
  5280. case 564:
  5281. #line 2936 "cplus-parse.y"
  5282. { yyval.ttype = build_opid (0, COMPONENT_REF); ;
  5283.     break;}
  5284. case 565:
  5285. #line 2938 "cplus-parse.y"
  5286. {
  5287.           if (yychar == YYEMPTY)
  5288.             yychar = YYLEX;
  5289.           if (yychar == '(' || yychar == LEFT_RIGHT)
  5290.             {
  5291.               yyval.ttype = build_opid (0, METHOD_CALL_EXPR);
  5292.               if (current_class_type)
  5293.             {
  5294.               tree t = current_class_type;
  5295.               while (t)
  5296.                 {
  5297.                   TYPE_OVERLOADS_METHOD_CALL_EXPR (t) = 1;
  5298.                   t = TYPE_NEXT_VARIANT (t);
  5299.                 }
  5300.             }
  5301.             }
  5302.           else
  5303.             yyval.ttype = build_parse_node (CALL_EXPR, build_opid (0, COMPONENT_REF), void_list_node, yyvsp[0].ttype);
  5304.         ;
  5305.     break;}
  5306. case 566:
  5307. #line 2958 "cplus-parse.y"
  5308. { yyval.ttype = build_opid (0, CALL_EXPR);
  5309.           if (current_class_type)
  5310.             {
  5311.               tree t = current_class_type;
  5312.               while (t)
  5313.             {
  5314.               TYPE_OVERLOADS_CALL_EXPR (t) = 1;
  5315.               t = TYPE_NEXT_VARIANT (t);
  5316.             }
  5317.             }
  5318.         ;
  5319.     break;}
  5320. case 567:
  5321. #line 2970 "cplus-parse.y"
  5322. { yyval.ttype = build_opid (0, ARRAY_REF);
  5323.           if (current_class_type)
  5324.             {
  5325.               tree t = current_class_type;
  5326.               while (t)
  5327.             {
  5328.               TYPE_OVERLOADS_ARRAY_REF (t) = 1;
  5329.               t = TYPE_NEXT_VARIANT (t);
  5330.             }
  5331.             }
  5332.         ;
  5333.     break;}
  5334. case 568:
  5335. #line 2982 "cplus-parse.y"
  5336. {
  5337.           yyval.ttype = build_opid (0, NEW_EXPR);
  5338.           if (current_class_type)
  5339.             {
  5340.               tree t = current_class_type;
  5341.               while (t)
  5342.             {
  5343.               TREE_GETS_NEW (t) = 1;
  5344.               t = TYPE_NEXT_VARIANT (t);
  5345.             }
  5346.             }
  5347.         ;
  5348.     break;}
  5349. case 569:
  5350. #line 2995 "cplus-parse.y"
  5351. {
  5352.           yyval.ttype = build_opid (0, DELETE_EXPR);
  5353.           if (current_class_type)
  5354.             {
  5355.               tree t = current_class_type;
  5356.               while (t)
  5357.             {
  5358.               TREE_GETS_DELETE (t) = 1;
  5359.               t = TYPE_NEXT_VARIANT (t);
  5360.             }
  5361.             }
  5362.         ;
  5363.     break;}
  5364. case 570:
  5365. #line 3011 "cplus-parse.y"
  5366. {
  5367.           yyval.ttype = build1 (TYPE_EXPR, yyvsp[-1].ttype, yyvsp[0].ttype);
  5368.         ;
  5369.     break;}
  5370. case 571:
  5371. #line 3015 "cplus-parse.y"
  5372. { yyval.ttype = build_opid (ERROR_MARK, ERROR_MARK); ;
  5373.     break;}
  5374. }
  5375.    /* the action file gets copied in in place of this dollarsign */
  5376. #line 408 "bison.simple"
  5377.  
  5378.   yyvsp -= yylen;
  5379.   yyssp -= yylen;
  5380. #ifdef YYLSP_NEEDED
  5381.   yylsp -= yylen;
  5382. #endif
  5383.  
  5384. #ifdef YYDEBUG
  5385.   if (yydebug)
  5386.     {
  5387.       short *ssp1 = yyss - 1;
  5388.       fprintf (stderr, "state stack now");
  5389.       while (ssp1 != yyssp)
  5390.     fprintf (stderr, " %d", *++ssp1);
  5391.       fprintf (stderr, "\n");
  5392.     }
  5393. #endif
  5394.  
  5395.   *++yyvsp = yyval;
  5396.  
  5397. #ifdef YYLSP_NEEDED
  5398.   yylsp++;
  5399.   if (yylen == 0)
  5400.     {
  5401.       yylsp->first_line = yylloc.first_line;
  5402.       yylsp->first_column = yylloc.first_column;
  5403.       yylsp->last_line = (yylsp-1)->last_line;
  5404.       yylsp->last_column = (yylsp-1)->last_column;
  5405.       yylsp->text = 0;
  5406.     }
  5407.   else
  5408.     {
  5409.       yylsp->last_line = (yylsp+yylen-1)->last_line;
  5410.       yylsp->last_column = (yylsp+yylen-1)->last_column;
  5411.     }
  5412. #endif
  5413.  
  5414.   /* Now "shift" the result of the reduction.
  5415.      Determine what state that goes to,
  5416.      based on the state we popped back to
  5417.      and the rule number reduced by.  */
  5418.  
  5419.   yyn = yyr1[yyn];
  5420.  
  5421.   yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
  5422.   if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
  5423.     yystate = yytable[yystate];
  5424.   else
  5425.     yystate = yydefgoto[yyn - YYNTBASE];
  5426.  
  5427.   goto yynewstate;
  5428.  
  5429. yyerrlab:   /* here on detecting error */
  5430.  
  5431.   if (! yyerrstatus)
  5432.     /* If not already recovering from an error, report this error.  */
  5433.     {
  5434.       ++yynerr;
  5435.       yyerror("parse error");
  5436.     }
  5437.  
  5438.   if (yyerrstatus == 3)
  5439.     {
  5440.       /* if just tried and failed to reuse lookahead token after an error, discard it.  */
  5441.  
  5442.       /* return failure if at end of input */
  5443.       if (yychar == YYEOF)
  5444.     YYABORT;
  5445.  
  5446. #ifdef YYDEBUG
  5447.       if (yydebug)
  5448.     fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
  5449. #endif
  5450.  
  5451.       yychar = YYEMPTY;
  5452.     }
  5453.  
  5454.   /* Else will try to reuse lookahead token
  5455.      after shifting the error token.  */
  5456.  
  5457.   yyerrstatus = 3;        /* Each real token shifted decrements this */
  5458.  
  5459.   goto yyerrhandle;
  5460.  
  5461. yyerrdefault:  /* current state does not do anything special for the error token. */
  5462.  
  5463. #if 0
  5464.   /* This is wrong; only states that explicitly want error tokens
  5465.      should shift them.  */
  5466.   yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
  5467.   if (yyn) goto yydefault;
  5468. #endif
  5469.  
  5470. yyerrpop:   /* pop the current state because it cannot handle the error token */
  5471.  
  5472.   if (yyssp == yyss) YYABORT;
  5473.   yyvsp--;
  5474.   yystate = *--yyssp;
  5475. #ifdef YYLSP_NEEDED
  5476.   yylsp--;
  5477. #endif
  5478.  
  5479. #ifdef YYDEBUG
  5480.   if (yydebug)
  5481.     {
  5482.       short *ssp1 = yyss - 1;
  5483.       fprintf (stderr, "Error: state stack now");
  5484.       while (ssp1 != yyssp)
  5485.     fprintf (stderr, " %d", *++ssp1);
  5486.       fprintf (stderr, "\n");
  5487.     }
  5488. #endif
  5489.  
  5490. yyerrhandle:
  5491.  
  5492.   yyn = yypact[yystate];
  5493.   if (yyn == YYFLAG)
  5494.     goto yyerrdefault;
  5495.  
  5496.   yyn += YYTERROR;
  5497.   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
  5498.     goto yyerrdefault;
  5499.  
  5500.   yyn = yytable[yyn];
  5501.   if (yyn < 0)
  5502.     {
  5503.       if (yyn == YYFLAG)
  5504.     goto yyerrpop;
  5505.       yyn = -yyn;
  5506.       goto yyreduce;
  5507.     }
  5508.   else if (yyn == 0)
  5509.     goto yyerrpop;
  5510.  
  5511.   if (yyn == YYFINAL)
  5512.     YYACCEPT;
  5513.  
  5514. #ifdef YYDEBUG
  5515.   if (yydebug)
  5516.     fprintf(stderr, "Shifting error token, ");
  5517. #endif
  5518.  
  5519.   *++yyvsp = yylval;
  5520. #ifdef YYLSP_NEEDED
  5521.   *++yylsp = yylloc;
  5522. #endif
  5523.  
  5524.   yystate = yyn;
  5525.   goto yynewstate;
  5526. }
  5527. #line 3018 "cplus-parse.y"
  5528.  
  5529.  
  5530. #if YYDEBUG != 0
  5531. db_yyerror (s, yyps, yychar)
  5532.      char *s;
  5533.      short *yyps;
  5534.      int yychar;
  5535. {
  5536.   FILE *yyout;
  5537.   char buf[1024];
  5538.   int st;
  5539.  
  5540.   yyerror (s);
  5541.   printf ("State is %d, input token number is %d.\n", *yyps, yychar);
  5542.  
  5543. #ifdef PARSE_OUTPUT
  5544.   if (*yyps < 1) fatal ("Cannot start from here");
  5545.   else if ((yyout = fopen (PARSE_OUTPUT, "r")) == NULL)
  5546.     error ("cannot open file %s", PARSE_OUTPUT);
  5547.   else
  5548.     {
  5549.       printf ("That is to say,\n\n");
  5550.       while (fgets(buf, sizeof (buf)-1, yyout))
  5551.     {
  5552.       if (buf[0] != 's') continue;
  5553.       st = atoi (buf+6);
  5554.       if (st != *yyps) continue;
  5555.       printf ("%s", buf);
  5556.       while (fgets (buf, sizeof (buf)-1, yyout))
  5557.         {
  5558.           if (buf[0] == 's') break;
  5559.           printf ("%s", buf);
  5560.         }
  5561.       break;
  5562.     }
  5563.       printf ("With the token %s\n", yytname[YYTRANSLATE (yychar)]);
  5564.       fclose (yyout);
  5565.     }
  5566. #endif
  5567. }
  5568. #endif
  5569.  
  5570. void
  5571. yyerror (string)
  5572.      char *string;
  5573. {
  5574.   extern FILE *finput;
  5575.   extern char *token_buffer;
  5576.   char buf[200];
  5577.  
  5578.   strcpy (buf, string);
  5579.  
  5580.   /* We can't print string and character constants well
  5581.      because the token_buffer contains the result of processing escapes.  */
  5582.   if (end_of_file || feof (finput))
  5583.     strcat (buf, " at end of input");
  5584.   else if (token_buffer[0] == 0)
  5585.     strcat (buf, " at null character");
  5586.   else if (token_buffer[0] == '"')
  5587.     strcat (buf, " before string constant");
  5588.   else if (token_buffer[0] == '\'')
  5589.     strcat (buf, " before character constant");
  5590.   else
  5591.     strcat (buf, " before `%s'");
  5592.  
  5593.   error (buf, token_buffer);
  5594. }
  5595.  
  5596. static int *reduce_count;
  5597. static int *token_count;
  5598.  
  5599. #define REDUCE_LENGTH (sizeof (yyr2) / sizeof (yyr2[0]))
  5600. #define TOKEN_LENGTH (256 + YYNTBASE + 1)
  5601.  
  5602. int *
  5603. init_parse ()
  5604. {
  5605. #ifdef GATHER_STATISTICS
  5606.   reduce_count = (int *)malloc (sizeof (int) * (REDUCE_LENGTH + 1));
  5607.   bzero (reduce_count, sizeof (int) * (REDUCE_LENGTH + 1));
  5608.   reduce_count += 1;
  5609.   token_count = (int *)malloc (sizeof (int) * TOKEN_LENGTH);
  5610.   bzero (token_count, sizeof (int) * TOKEN_LENGTH);
  5611. #endif
  5612.   return token_count;
  5613. }
  5614.  
  5615. #ifdef GATHER_STATISTICS
  5616. void
  5617. yyhook (yyn)
  5618.      int yyn;
  5619. {
  5620.   reduce_count[yyn] += 1;
  5621. }
  5622. #endif
  5623.  
  5624. static int reduce_cmp (p, q)
  5625.      int *p, *q;
  5626. {
  5627.   return reduce_count[*q] - reduce_count[*p];
  5628. }
  5629.  
  5630. static int token_cmp (p, q)
  5631.      int *p, *q;
  5632. {
  5633.   return token_count[*q] - token_count[*p];
  5634. }
  5635.  
  5636. void
  5637. print_parse_statistics ()
  5638. {
  5639.   int i;
  5640.   int maxlen = REDUCE_LENGTH;
  5641.   unsigned *sorted;
  5642.   
  5643.   if (reduce_count[-1] == 0)
  5644.     return;
  5645.  
  5646.   if (TOKEN_LENGTH > REDUCE_LENGTH)
  5647.     maxlen = TOKEN_LENGTH;
  5648.   sorted = (unsigned *) alloca (sizeof (int) * maxlen);
  5649.  
  5650.   for (i = 0; i < TOKEN_LENGTH; i++)
  5651.     sorted[i] = i;
  5652.   qsort (sorted, TOKEN_LENGTH, sizeof (int), token_cmp);
  5653.   for (i = 0; i < TOKEN_LENGTH; i++)
  5654.     {
  5655.       int index = sorted[i];
  5656.       if (token_count[index] == 0)
  5657.     break;
  5658.       if (token_count[index] < token_count[-1])
  5659.     break;
  5660.       fprintf (stderr, "token %d", index);
  5661. #if YYDEBUG
  5662.       fprintf (stderr, ", `%s'", yytname[YYTRANSLATE (index)]);
  5663. #endif 
  5664.       fprintf (stderr, ", count = %d\n", token_count[index]);
  5665.     }
  5666.   fprintf (stderr, "\n");
  5667.   for (i = 0; i < REDUCE_LENGTH; i++)
  5668.     sorted[i] = i;
  5669.   qsort (sorted, REDUCE_LENGTH, sizeof (int), reduce_cmp);
  5670.   for (i = 0; i < REDUCE_LENGTH; i++)
  5671.     {
  5672.       int index = sorted[i];
  5673.       if (reduce_count[index] == 0)
  5674.     break;
  5675.       if (reduce_count[index] < reduce_count[-1])
  5676.     break;
  5677.       fprintf (stderr, "rule %d", index);
  5678. #if YYDEBUG
  5679.       fprintf (stderr, ", line %d", yyrline[index]);
  5680. #endif 
  5681.       fprintf (stderr, ", count = %d\n", reduce_count[index]);
  5682.     }
  5683.   fprintf (stderr, "\n");
  5684. }
  5685.